假设集合是这样的:
db.mytests.find()
{ "_id" : ObjectId("4fb277b89b8295a790efde44"),
"mylist": [
{ "foo1" :"bar1", "foo2" : "bar2" },
{"foo1" : "bar3", "foo2" : "bar4" }
],
"nonlist" : "nonlistVal" }
在阅读有关更新的 mongodb 文档后,我想删除一个等于mylist
的文档,我使用了这个:foo1
bar1
db.mytests.update({},{$pull:{'mylist':{'mylist.$.foo1':'bar1'}}})
但它失败了。为了找出问题,我插入了一个新数组来mytests
使用它:
db.mytests.update({},{$set:{'anotherList':[1,2,3,4]}})
然后使用db.mytests.update({},{$pull:{'anotherList':{$gt:3}}})
拉取
4
数组中的元素anotherList
,它成功了。
我想问题出在mylist.$.foo1
? 你能告诉我删除数组中文档元素的正确方法吗?