Firstly, I asked the question in
stackoverflow , but ,well, no answer still.
db.mytests.find()
{ "_id" : ObjectId("4fb277b89b8295a790efde44"),
"mylist": [
{ "foo1" :"bar1", "foo2" : "bar2" },
{"foo1" : "bar3", "foo2" : "bar4" }
],
"nonlist" : "nonlistVal" }
I want to remove a document in 'mylist' whose 'foo1' is 'bar1', after reading mongodb document about updating I used this:
db.mytests.update({},{$pull:{'mylist':{'mylist.$.foo1':'bar1'}}})
but it failed. To figure out the problem I insert a new array into mytests using this:
db.mytests.update({},{$set:{'anotherList':[1,2,3,4]}})
and then using db.mytests.update({},{$pull:{'anotherList':{$gt:3}}}) to pull the element 4 in array anotherList ,it succeed.
I supposed the problem is with the mylist.$.foo1 ?
I tried db.mytests.update({'mylist.foo1':'bar1'},{$pull:{'mylist':{'mylist.$.foo1':'bar1'}}}) but no luck.