Представьте, что у вас есть такая схема:
[{
name: "Bob",
naps: [{
time: 2019-05-01T15:35:00,
location: "sofa"
}, ...]
}, ...
]
Так много людей, каждый из которых имеет несколько дюжин дремоты. Вы хотите узнать, «в какие дни люди больше всего дремлют?», Поэтому вы индексируете naps.time
, а затем запрашиваете:
aggregate([
{$unwind: naps},
{$group: { _id: {$day: "$naps.time"}, napsOnDay: {"$sum": 1 } }
])
Но когда вы делаете explain()
, Монго не сообщает мне индексабыл использован в этом запросе, когда ясно, что индекс для поля времени Date
мог быть. Почему это? Как я могу заставить монго использовать индекс для более оптимального запроса?