Dokumentacja ujawnia inną sygnaturę metody:
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
)
Przede wszystkim typ zwracany i parametr options różnią się.
Podczas gdy ReplaceOne
zwraca ReplaceOneResult
, FindOneAndReplace
zwraca dokument (pamiętaj o właściwości ReturnDocument w opcjach).
ReplaceOptions
są raczej ograniczone w porównaniu z FindOneAndReplaceOptions
, np. pierwszy nie zapewnia sortowania
Właściwość umożliwiająca kontrolę nad tym, który dokument będzie pierwszym z pasujących dokumentów w kolekcji. Nie ma to znaczenia, jeśli filtrujesz na podstawie identyfikatora, ale jeśli chcesz zastąpić najnowszy dokument, opcja sortowania jest bardzo przydatna.
(Uwaga:osobiście znajduję dokumentację tutaj https:// docs.mongodb.com/manual/reference/method/db.collection.replaceOne/ i tutaj https://docs.mongodb.com/manual/ reference/method/db.collection.findOneAndReplace/ o wiele bardziej pomocne, ponieważ bardziej szczegółowo wyjaśniają użycie, a także podają kilka przykładów. Ale nie wiem, jak bardzo pasuje do sterownika MongoDB C#.)