mongodb不能将$ pull / $ pullAll修饰符应用于非数组,如何删除数组元素

时间:2013-03-10 14:41:26

标签: mongodb

我遇到了关于mongodb的问题。

db.tt.find()
{ "_id" : ObjectId("513c971be4b1f9d71bc8c769"), 
  "name" : "a", 
  "comments" : [ { "name" : "2" }, { "name" : "3" } ] 
}

以上是测试文件。

我想拉一下comments.name = 2

我做

db.tt.update({'comments.name':'2'},{'$pull':{'comments.$.name':'2'}});

但控制台会打印以下消息:

无法将$ pull / $ pullAll修饰符应用于非数组

我的mongodb版本是2.0.6

谁可以帮助我?非常感谢你

1 个答案:

答案 0 :(得分:9)

您的$pull语法已关闭,应为:

db.tt.update({'comments.name': '2'}, {$pull: {comments: {name: '2'}}})