gpt4 book ai didi

mongodb 拉取数组中的所有元素

转载 作者:可可西里 更新时间:2023-11-01 09:57:34 26 4
gpt4 key购买 nike

假设我有以下架构:

"_id" : 1,
"n" : [{
"a" : ObjectId("4ef0ca414653b7c866040000"),
"d" : new Date("Thu, 22 Dec 2011 04:53:56 GMT +04:00")
}, {
"a" : ObjectId("4ef0ca414653b9c866040000"),
"d" : new Date("Thu, 22 Dec 2011 04:54:11 GMT +04:00")
}, {
"a" : ObjectId("4ef0ca424653b9c866040000"),
"d" : new Date("Thu, 22 Dec 2011 04:54:30 GMT +04:00"),
}]

我需要删除所有 n,其中 d 小于特定日期。

所以我想我可以通过以下方式做到这一点:

db.coll.update({
'_id': 1
},{
$pullAll : {
n.d : {
$lte : new Date(2000, 10, 11)
}
}
})

但问题是,它不是这样工作的。有什么建议吗?

最佳答案

这不是 $pullAll 的工作方式。您不能指定匹配条件,只能指定要删除的对象数组(需要完全匹配)。

幸运的是,您可以改用 $pull(它确实接受匹配条件):

db.coll.update({
'_id': 1
},{
$pull : {
n.d : {
$lte : new Date(2000, 10, 11)
}
}
})

请注意,$pull 还会拉取 所有 匹配的元素,而不仅仅是一个。

这是 admittedly a little confusing .

关于mongodb 拉取数组中的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8598685/

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