sql >> Database >  >> NoSQL >> MongoDB

Upserting in Mongo DB met officiële C#-driver

Versie 2 van het MongoDB C#-stuurprogramma vereist het instellen van de IsUpsert vlag in de schrijfopdrachten. Dit voorbeeld zal een heel document overslaan.

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

Versie 1 van de MongoDB C# driver implementeert deze logica in de Save opdracht.

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

De Save-methode is een combinatie van Insert en Update. Als het ID-lid van het document een waarde heeft, wordt aangenomen dat het een bestaand document is en roept Save Update op het document aan (de Upsert-vlag instellen voor het geval het toch een nieuw document is). Anders wordt aangenomen dat het een nieuw document is en Save roept Insert op nadat eerst een nieuw gegenereerde unieke waarde is toegewezen aan het ID-lid.

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

Opmerking:dit vereist echter wel de juiste toewijzing van het veld Id. Meer info daarover hier:http://mongodb.github.io/mongo-csharp-driver/1.11/serialization/#identifying-the-id-field-or-property



  1. Tips voor het upgraden van Percona Server voor MongoDB

  2. Geen resultaat van de Redis met Crud Repository in Spring Boot?

  3. MongoDB onderscheiden()

  4. 2 manieren om een ​​waarde toe te voegen aan een array in MongoDB