Dokumentationen afslører en anden metodesignatur:
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
)
Mest bemærkelsesværdigt er returtypen og indstillingsparameteren forskellige.
Mens ReplaceOne
returnerer en ReplaceOneResult
, FindOneAndReplace
returnerer et dokument (vær opmærksom på ReturnDocument-egenskaben i mulighederne).
ReplaceOptions
er ret begrænsede sammenlignet med FindOneAndReplaceOptions kode>
, for eksempel. førstnævnte giver ikke en sort
ejendom for at give dig kontrol over, hvilket dokument der bliver det første af de matchende dokumenter i samlingen. Dette betyder ikke noget, hvis du filtrerer baseret på et ID, men hvis du vil erstatte det seneste dokument, er sorteringsmuligheden meget nyttig.
(Sidebemærkning:Jeg finder personligt dokumentationen her https:// docs.mongodb.com/manual/reference/method/db.collection.replaceOne/ og her https://docs.mongodb.com/manual/ reference/method/db.collection.findOneAndReplace/ meget mere nyttigt, da de forklarer brugen mere detaljeret og også giver nogle eksempler. Men jeg ved ikke, hvor tæt den matcher MongoDB C#-driveren.)