У меня есть коллекция монго, в которой хранится информация о продуктах, и встроенный массив, в котором хранится информация о ее доступности по дате.
{
"product_id": "A",
"name": "mountain bicycle",
"cost_per_hour": "$5",
"availability":[
{
"timestamp": ISODate("2018-11-19 18:30:00.000Z"),
"available": true
},
{
"timestamp": ISODate("2018-12-20 18:30:00.000Z")
"available": true
},
{
"timestamp": ISODate("2018-12-21 18:30:00.000Z")
"available": false
}
]
}
Я хочу перечислить все продукты, которые доступны на все даты в заданном интервале дат.
Пример: если я запрашиваю дату между ISODate («2018-11-19 18: 30: 00.000Z») и ISODate («2018-12-20 18: 30: 00.000Z») И доступно: true, I должен получить продукт с "product_id": "A", так как он доступен для всех дат в интервале дат.
Но если я сделаю запрос между ISODate ("2018-11-19 18: 30: 00.000Z") и ISODate ("2018-12-21 18: 30: 00.000Z") И доступно: true, я НЕ должен получить любые результаты, так как продукт недоступен для всех дат в диапазоне дат.
Я пытался использовать $ elemMatch, но он возвращает продукты, доступные в как минимум 1 дат, указанных в интервале, что мне не нужно.
Пожалуйста, руководство.