Dokumentationen avslöjar en annan metodsignatur:
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
)
Framför allt skiljer sig returtypen och alternativparametern.
Medan ReplaceOne
returnerar en ReplaceOneResult
, FindOneAndReplace
returnerar ett dokument (var medveten om egenskapen ReturnDocument i alternativen).
ReplaceOptions
är ganska begränsade jämfört med FindOneAndReplaceOptions kod>
, t.ex. den förra tillhandahåller ingen sort
egenskap för att ge dig kontroll över vilket dokument som blir det första av de matchande dokumenten i samlingen. Detta spelar ingen roll om du filtrerar baserat på ett ID, men om du vill ersätta det senaste dokumentet är sorteringsalternativet mycket användbart.
(Sidonot:jag personligen hittar dokumentationen här https:// docs.mongodb.com/manual/reference/method/db.collection.replaceOne/ och här https://docs.mongodb.com/manual/ reference/method/db.collection.findOneAndReplace/ mycket mer användbart eftersom de förklarar användningen mer i detalj och ger några exempel. Men jag vet inte hur nära den matchar MongoDB C#-drivrutinen.)