De documentatie onthult een andere handtekening van de methode:
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
)
Het meest opvallende is dat het retourtype en de parameter options verschillen.
Terwijl ReplaceOne
retourneert een ReplaceOneResult
, FindOneAndReplace
retourneert een document (let op de eigenschap ReturnDocument in de opties).
De ReplaceOptions
zijn eerder beperkt in vergelijking met FindOneAndReplaceOptions
, bijv. de eerste geeft geen sort
eigenschap om u controle te geven over welk document het eerste van de overeenkomende documenten in de collectie zal zijn. Dit maakt niet uit of je filtert op basis van een ID, maar als je het laatste document wilt vervangen is de sorteeroptie erg handig.
(Kanttekening:ik vind de documentatie hier persoonlijk https:// docs.mongodb.com/manual/reference/method/db.collection.replaceOne/ en hier https://docs.mongodb.com/manual/ reference/method/db.collection.findOneAndReplace/ veel nuttiger, omdat ze het gebruik in meer detail uitleggen en ook enkele voorbeelden geven. Maar ik weet niet in hoeverre het overeenkomt met het MongoDB C#-stuurprogramma.)