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