Mongoose:如何从多个文档中删除特定的数组元素?

时间:2017-02-09 01:03:46

标签: mongoose

Mongodb系列包含以下文件:

{
  c:"a1",
  ss:[{q:"q1",d:"d1" },{q:"q1",d:"d2" }, {q:"q2",d:"d3" }]
},
{
  c:"a1",
  ss:[{q:"q1",d:"d4" },{q:"q1",d:"d5" }, {q:"q2",d:"d6" }]
},
{
  c:"a2",
  ss:[{q:"q1",d:"d4" },{q:"q1",d:"d5" }, {q:"q2",d:"d6" }]
}

我需要将c与值" a1"匹配,并删除s中的所有数组元素,其中q为" q1"。我尝试了以下命令,但它没有用。我将非常感谢您的建议。谢谢!

update({c:"a1"},{$pullAll:{ss:[{q:"q1"}]}}, {multi:true})

1 个答案:

答案 0 :(得分:0)

以下命令实际上有效:

        update({c:"a1"},{$pull:{ss:{q:"q1"}}}, {multi:true})

似乎$ pullAll需要完整对象的数组。它不能是对象中的部分属性数组。

相关问题