Version 2 för MongoDB C#-drivrutinen kräver inställning av IsUpsert
flagga i skrivkommandona. Det här exemplet kommer att rubba ett 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 av MongoDB C#-drivrutinen implementerar denna logik i Save
kommando.
var newDoc = new BsonDocument { { "_id", 123 }, { "someKey", "someValue" } };
collection.Save(newDoc);
Sparametoden är en kombination av Infoga och Uppdatera. Om ID-medlemmen i dokumentet har ett värde, antas det vara ett befintligt dokument och Save anropar Uppdatera på dokumentet (ställer in Upsert-flaggan ifall det faktiskt är ett nytt dokument trots allt). Annars antas det vara ett nytt dokument och Spara samtal Infoga efter att först tilldela ett nygenererat unikt värde till Id-medlemmen.
Referens:http://mongodb.github.io/mongo-csharp-driver/1.11/driver/#save-tdocument-method
Obs:Detta kräver dock korrekt mappning av Id-fältet. Mer information om det här:http://mongodb.github.io/mongo-csharp-driver/1.11/serialization/#identifying-the-id-field-or-property