La documentation dévoile une signature de méthode différente :
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
)
Plus particulièrement, le type de retour et le paramètre d'options diffèrent.
Tandis que ReplaceOne
renvoie un ReplaceOneResult
, FindOneAndReplace
renvoie un document (attention à la propriété ReturnDocument dans les options).
Les ReplaceOptions
sont plutôt limités par rapport à FindOneAndReplaceOptions
, par exemple. le premier ne fournit pas de sort
propriété pour vous donner le contrôle sur le document qui sera le premier des documents correspondants dans la collection. Cela n'a pas d'importance si vous filtrez en fonction d'un ID, mais si vous souhaitez remplacer le dernier document, l'option de tri est très utile.
(Remarque :je trouve personnellement la documentation ici https:// docs.mongodb.com/manual/reference/method/db.collection.replaceOne/ et ici https://docs.mongodb.com/manual/ reference/method/db.collection.findOneAndReplace/ beaucoup plus utile, car ils expliquent l'utilisation plus en détail et fournissent également quelques exemples. Mais je ne sais pas à quel point cela correspond au pilote MongoDB C#.)