Документацията разкрива различен подпис на метода:
ReplaceOneResult ReplaceOne(
FilterDefinition<TDocument> filter,
TDocument replacement,
ReplaceOptions options = null,
CancellationToken cancellationToken = null
)
TProjection FindOneAndReplace<TProjection>(
FilterDefinition<TDocument> filter,
TDocument replacement,
FindOneAndReplaceOptions<TDocument, TProjection> options = null,
CancellationToken cancellationToken = null
)
Най-вече типът на връщане и параметърът за опции се различават.
Докато ReplaceOne
връща ReplaceOneResult
, FindOneAndReplace
връща документ (имайте предвид свойството ReturnDocument в опциите).
ReplaceOptions
са доста ограничени в сравнение с FindOneAndReplaceOptionsкод>
, напр. първото не предоставя сортиране
свойство, за да ви даде контрол върху това кой документ ще бъде първият от съответстващите документи в колекцията. Това няма значение, ако филтрирате въз основа на идентификатор, но ако искате да замените най-новия документ, опцията за сортиране е много полезна.
(Странична бележка:аз лично намирам документацията тук https:// docs.mongodb.com/manual/reference/method/db.collection.replaceOne/ и тук https://docs.mongodb.com/manual/ справка/метод/db.collection.findOneAndReplace/ много по-полезни, тъй като те обясняват употребата по-подробно и също така дават някои примери. Но не знам колко точно съвпада с драйвера MongoDB C#.)