sql >> Database teknologi >  >> NoSQL >> MongoDB

Upserting i Mongo DB ved hjælp af officiel C#-driver

Version 2 af MongoDB C#-driveren kræver indstilling af IsUpsert flag i skrivekommandoerne. Dette eksempel vil ophæve et helt dokument.

var newDoc = new BsonDocument { { "_id", 123 }, { "someKey", "someValue" } };
var result = await collection.ReplaceOneAsync(
                filter: new BsonDocument("_id", 123),
                options: new ReplaceOptions { IsUpsert = true },
                replacement: newDoc);

Version 1 af MongoDB C#-driveren implementerer denne logik i Save kommando.

var newDoc = new BsonDocument { { "_id", 123 }, { "someKey", "someValue" } };
collection.Save(newDoc);

Gem-metoden er en kombination af Indsæt og Opdater. Hvis Id-medlemmet af dokumentet har en værdi, antages det at være et eksisterende dokument, og Save kalder Opdatering på dokumentet (indstiller Upsert-flaget, hvis det alligevel er et nyt dokument). Ellers antages det at være et nyt dokument og Gem opkald Indsæt efter først at have tildelt en nygenereret unik værdi til Id-medlemmet.

Reference:http://mongodb.github.io/mongo-csharp-driver/1.11/driver/#save-tdocument-method

Bemærk:Dette kræver dog den korrekte tilknytning af Id-feltet. Mere info om det her:http://mongodb.github.io/mongo-csharp-driver/1.11/serialization/#identifying-the-id-field-or-property



  1. Hvorfor frarådes KEYS at blive brugt i Redis?

  2. Løb redis i marathon (mesos) under én url

  3. udløb redis cache-nøgle på bestemte tidspunkter i stedet for varighed

  4. MongoDb c# driver find element i array efter feltværdi