在 MongoDB 中,我想根据满足某些参数的子文档的值来查找文档。具体来说,我有一个结构如下的文档:
{
name: "test",
data: [{
name: "test1",
start: 0,
end: 2
},
{
name: "test2",
start: 15
end: 18
}]
}
如果数据子文档的开始时间小于 5 并且同一子文档的结束时间大于 5,如何告诉 MongoDB 仅返回我的文档?目前,如果我这样做
db.foo.findOne({
'data.start': { $lte: 5 },
'data.end': { $gte: 5 }
})
它将始终返回我的文档,因为 5 大于 0 且小于 18。我如何告诉 MongoDB 仅在 5(或任何值)大于 0 且小于 2 或大于 15 且小于 18 时才返回我的文档?