sql >> Databáze >  >> NoSQL >> MongoDB

Upserting v Mongo DB pomocí oficiálního ovladače C#

Verze 2 ovladače MongoDB C# vyžaduje nastavení IsUpsert příznak v příkazech zápisu. Tento příklad nahradí celý 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);

Verze 1 ovladače MongoDB C# implementuje tuto logiku v rámci Save příkaz.

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

Metoda Uložit je kombinací Vložit a Aktualizovat. Pokud má člen Id dokumentu hodnotu, pak se předpokládá, že se jedná o existující dokument a Save vyvolá aktualizaci dokumentu (nastavení příznaku Upsert pro případ, že by se přece jen skutečně jednalo o nový dokument). V opačném případě se předpokládá, že se jedná o nový dokument, a po prvním přiřazení nově vygenerované jedinečné hodnoty členu Id zavolá Uložit příkaz Vložit.

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

Poznámka:To však vyžaduje správné mapování pole Id. Více informací o tom zde:http://mongodb.github.io/mongo-csharp-driver/1.11/serialization/#identifying-the-id-field-or-property



  1. nakonfigurujte redis auth na sidekiq

  2. Jak spravovat dokumenty v MongoDB

  3. Statistiky databáze a sbírky MongoDB

  4. Porovnání dat v mongodb