MongoDB: Найти поддокумент в параметрах сопоставления массива
В 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 ?