我想通過匹配項目的'voteId'字段來更新voteResultList中的項目。使用csharp mongodb驅動程序,如何更新列表中的項目?
文件:
{
voteDocumentId: "....",
voteResultList: [
{
voteId: "....",
voteResult: "NA"
},
{
voteId: "....",
voteResult: "Against"
}
....
]
}
如果蒙戈我可以使用此命令,它能夠正常工作。
db.getCollection('VoteCollection').update({'voteDocumentId': '....', 'voteResultList.voteId': '....'},{'$set': {'voteResultList.$.voteResult': 'Approve'}})
在CSHARP代碼使用CSHARP蒙戈驅動
,我生成從該JSON文檔
{'voteDocumentId': '....', 'voteResultList.voteId': '....'}
然後我由此代碼生成的更新BSON文件的濾波器BSON文檔
Builders<BsonDocument>.Update.Set("voteResultList.$.voteResult", "Approve")
但顯然我沒有正確地做到這一點,因爲在調用MongoCollection.UpdateMany(filter,update),mongoUpdateResult.ModifiedCount = 0之後,MongoDB文檔中沒有任何更改。
那麼這樣做的正確方法是什麼?
謝謝!
的可能的複製[蒙戈更新數組元素(.NET 2.0驅動程序)](https://stackoverflow.com/questions/31453681/mongo-update-array-element-net-driver-2-0) – dnickless