我的文档结构如下
{
_id: 12342342
items: [
{
ownerId: 123,
dates: ['2014-10-01', '2014-10-02']
},
{
ownerId: 234,
dates: ['2014-10-01', '2014-10-02']
},
]
}
我想从父对象的ownerId 为特定值的日期中提取特定值。
I have
var myDate = '2014-10-01'
db.collection('things').update({'items.dates': {$in: [myDate]}},
{$pull: { 'items.$.dates': myDate } }, {multi: true});
但这会拉取任何ownerId,这不是我想要的。有人可以帮助我获得正确的查询语法吗?
谢谢。
如你所愿pull关于具体的ownerId,你需要指定ownerId在查询部分update方法。这是给你一个参考:
var myDate = '2014-10-01';
var ownerId = 123;
db.things.update({
'items' : {
'$elemMatch' : {
ownerId : ownerId,
dates : {
$in : [ myDate ]
}
}
}
}, {
$pull : {
'items.$.dates' : myDate
}
}, {
multi : true
});
事实上,运营商$in这里是不必要的。
var myDate = '2014-10-01';
var ownerId = 123;
db.things.update({
'items' : {
'$elemMatch' : {
ownerId : ownerId,
dates : myDate
}
}
}, {
$pull : {
'items.$.dates' : myDate
}
}, {
multi : true
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)