MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Perbarui/Hapus sub dokumen di mongodb menggunakan driver C#

Untuk memperbarui subdokumen, Anda dapat menggunakan ini:

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);

profiler:

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

Dan untuk menghapus:

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);

profiler:

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

Cara lain adalah memperbarui dokumen induk dengan koleksi anak yang dimodifikasi.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Menambahkan/Mengurangi hari ke ISODate di MongoDB Shell

  2. Batasi Penggunaan RAM MongoDB

  3. Hindari parser string URL saat ini adalah peringatan yang tidak digunakan lagi dengan menyetel useNewUrlParser ke true

  4. Menggunakan MongoDB dan Neo4j bersama

  5. spring boot + mongodb + masalah koneksi rute unta