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

Aktualizujte/odstraňte dílčí dokument v mongodb pomocí ovladače C#

Chcete-li aktualizovat vnořený dokument, můžete použít toto:

var update = Update.Set("AnswerList.$.OptionName", "new").Set("AnswerList.$.VoteCount", 5);
collection.Update(Query.And(Query.EQ("_id", new BsonObjectId("50f3c313f216ff18c01d1eb0")), Query.EQ("AnswerList.OptionId", "1")), update);

profilovač:

"query" : { "_id" : ObjectId("50f3c313f216ff18c01d1eb0"), "AnswerList.OptionId" : "1" },
"updateobj" : { "$set" : { "AnswerList.$.OptionName" : "new", "AnswerList.$.VoteCount" : 5 } }

A k odstranění:

var pull = Update<Vote>.Pull(x => x.AnswerList, builder => builder.EQ(q => q.OptionId, "2"));
collection.Update(Query.And(Query.EQ("_id", new BsonObjectId("50f3c313f216ff18c01d1eb0")), Query.EQ("AnswerList.OptionId", "2")), pull);

profilovač:

"query" : { "_id" : ObjectId("50f3c313f216ff18c01d1eb0"), "AnswerList.OptionId" : "2" },
"updateobj" : { "$pull" : { "AnswerList" : { "OptionId" : "2" } } }

Dalším způsobem je aktualizovat nadřazený dokument s upravenou podřízenou kolekcí.



  1. Mongoose vytáhne ObjectId z pole

  2. Úkol z celeru vždy ČEKÁ

  3. Jak mohu v Morphii aktualizovat jeden vložený objekt uvnitř ArrayList

  4. Jak získáte přístup k atributům objektu dotazovaného z Mongo v Meteoru