Die Dokumentation enthüllt eine andere Methodensignatur:
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
)
Vor allem der Rückgabetyp und die Optionsparameter unterscheiden sich.
Während ReplaceOne
gibt ein ReplaceOneResult
zurück , FindOneAndReplace
gibt ein Dokument zurück (achten Sie auf die ReturnDocument-Eigenschaft in den Optionen).
Die ReplaceOptions
sind im Vergleich zu FindOneAndReplaceOptions
, z.B. Ersteres bietet keine sort
-Eigenschaft, um Ihnen die Kontrolle darüber zu geben, welches Dokument das erste der übereinstimmenden Dokumente in der Sammlung sein wird. Dies spielt keine Rolle, wenn Sie nach einer ID filtern, aber wenn Sie das neueste Dokument ersetzen möchten, ist die Sortieroption sehr nützlich.
(Nebenbemerkung:Ich persönlich finde die Dokumentation hier https:// docs.mongodb.com/manual/reference/method/db.collection.replaceOne/ und hier https://docs.mongodb.com/manual/ reference/method/db.collection.findOneAndReplace/ viel hilfreicher, da sie die Verwendung ausführlicher erklären und auch einige Beispiele liefern. Aber ich weiß nicht, wie genau es mit dem MongoDB-C#-Treiber übereinstimmt.)