2017-02-09 63 views
1

甲MongoDB的集合具有以下文件:Mongoose:如何从多个文档中删除特定的数组元素?

{ 
    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" }] 
} 

我需要匹配下用值“A1”,并删除在SS所有数组元素中,其Q为“Q1”。我尝试了下面的命令,但没有奏效。我将非常感谢您的建议。谢谢!

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

回答

0

下面的命令实际工作:

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

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

相关问题