gpt4 book ai didi

MongoDb 使用位置运算符拉取

转载 作者:可可西里 更新时间:2023-11-01 09:31:10 25 4
gpt4 key购买 nike

我的文档结构如下

{
_id: 12342342
items: [
{
ownerId: 123,
dates: ['2014-10-01', '2014-10-02']
},
{
ownerId: 234,
dates: ['2014-10-01', '2014-10-02']
},

]
}

我想从父对象的 ownerId 为特定值的日期中提取特定值。

我有

   var myDate = '2014-10-01'
db.collection('things').update({'items.dates': {$in: [myDate]}},
{$pull: { 'items.$.dates': myDate } }, {multi: true});

但这会拉取任何 ownerId,这不是我想要的。有人可以帮助我获得正确的查询语法吗?

谢谢。

最佳答案

如果您想拉取特定的ownerId,您需要在update ownerId强> 方法。这是给你的引用:

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
});

关于MongoDb 使用位置运算符拉取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26319733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com