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 ?

Ответы на вопрос(2)

Ваш ответ на вопрос