gpt4 book ai didi

MongoDB:在数组匹配参数中查找子文档

转载 作者:IT老高 更新时间:2023-10-28 11:03:24 24 4
gpt4 key购买 nike

在 MongoDB 中,我想根据满足某些参数的子文档的值来查找文档。具体来说,我的文档结构如下:

{
name: "test",
data: [{
name: "test1",
start: 0,
end: 2
},
{
name: "test2",
start: 15
end: 18
}]
}

如何告诉 MongoDB 仅在数据子文档的开始时间小于 5 且同一子文档的结束时间大于 5 时才返回我的文档?目前,如果我这样做了

db.foo.findOne({
'data.start': { $lte: 5 },
'data.end': { $gte: 5 }
})

它将始终返回我的文档,因为 5 大于 0 且小于 18。我如何告诉 MongoDB 仅在 5(或任何值)大于 0 且小于 2 或大于 15 且不到 18 岁?

最佳答案

您想使用 $elemMatch .

db.foo.findOne({ data: { $elemMatch : {
start: { $lte: 5 },
end: { $gte: 5 }
}}
})

关于MongoDB:在数组匹配参数中查找子文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11823296/

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