MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mise à jour dans Mongo DB à l'aide du pilote C# officiel

Version 2 du pilote MongoDB C# nécessite de définir le IsUpsert drapeau dans les commandes d'écriture. Cet exemple mettra à jour un document entier.

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 du pilote MongoDB C# implémente cette logique dans le Save commande.

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

La méthode Save est une combinaison de Insert et Update. Si le membre Id du document a une valeur, alors il est supposé être un document existant et Save appelle Update sur le document (définissant l'indicateur Upsert juste au cas où il s'agirait en fait d'un nouveau document après tout). Sinon, il est supposé être un nouveau document et Save appelle Insert après avoir d'abord attribué une valeur unique nouvellement générée au membre Id.

Référence :http://mongodb.github.io/mongo-csharp-driver/1.11/driver/#save-tdocument-method

Remarque :Cela nécessite cependant le mappage approprié du champ Id. Plus d'informations à ce sujet ici :http://mongodb.github.io/mongo-csharp-driver/1.11/serialization/#identifying-the-id-field-or-property