В 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?