La documentazione svela una firma del metodo diversa:
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
)
In particolare, il tipo restituito e il parametro delle opzioni differiscono.
Mentre ReplaceOne
restituisce un ReplaceOneResult
, FindOneAndReplace
restituisce un documento (tenere presente la proprietà ReturnDocument nelle opzioni).
Il ReplaceOptions
sono piuttosto limitati rispetto a FindOneAndReplaceOptions
, per esempio. il primo non fornisce un sort
proprietà per darti il controllo su quale documento sarà il primo dei documenti corrispondenti nella raccolta. Non importa se filtri in base a un ID, ma se desideri sostituire l'ultimo documento l'opzione di ordinamento è molto utile.
(Nota a margine:personalmente trovo la documentazione qui https:// docs.mongodb.com/manual/reference/method/db.collection.replaceOne/ e qui https://docs.mongodb.com/manual/ reference/method/db.collection.findOneAndReplace/ molto più utili, poiché spiegano l'utilizzo in modo più dettagliato e forniscono anche alcuni esempi. Ma non so quanto corrisponda al driver MongoDB C#.)