Versi 2 dari driver MongoDB C# memerlukan pengaturan IsUpsert
tandai dalam perintah tulis. Contoh ini akan meng-upser seluruh dokumen.
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);
Versi 1 dari driver MongoDB C# mengimplementasikan logika ini dalam Save
memerintah.
var newDoc = new BsonDocument { { "_id", 123 }, { "someKey", "someValue" } };
collection.Save(newDoc);
Metode Simpan adalah kombinasi dari Sisipkan dan Perbarui. Jika anggota Id dokumen memiliki nilai, maka itu dianggap sebagai dokumen yang ada dan Simpan panggilan Perbarui pada dokumen (mengatur bendera Upsert untuk berjaga-jaga jika itu sebenarnya adalah dokumen baru). Jika tidak, itu dianggap sebagai dokumen baru dan Simpan panggilan Sisipkan setelah terlebih dahulu menetapkan nilai unik yang baru dibuat ke anggota Id.
Referensi:http://mongodb.github.io/mongo-csharp-driver/1.11/driver/#save-tdocument-method
Catatan:Ini memang membutuhkan pemetaan bidang Id yang tepat. Info lebih lanjut tentang itu di sini:http://mongodb.github.io/mongo-csharp-driver/1.11/serialization/#identifying-the-id-field-or-property