sql >> Databasteknik >  >> NoSQL >> MongoDB

mongodb c# API V2:Skillnaden mellan ReplaceOne och FindOneAndReplace

Dokumentationen avslöjar en annan metodsignatur:

ReplaceOne :

ReplaceOneResult ReplaceOne(
    FilterDefinition<TDocument> filter,
    TDocument replacement,
    ReplaceOptions options = null,
    CancellationToken cancellationToken = null
)

FindOneAndReplace :

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.)




  1. hur man infogar autoincrement-nummer med min mangustsamling

  2. Hierarkiska frågor med Mongo med $graphLookup

  3. 3 sätt att konvertera en sträng till ett datum i MongoDB

  4. Projicera resultat från MongoDb Hitta i F#