MongoDB найти объект не в массиве дат
У меня есть массив объектов. У каждого объекта есть поле "дата". Как я могу найти, например, все документы, которые не имеют даты 2017-09-27, но имеют дату 2017-09-26?
Пример массива "звонков":
{
"calls" : [
{"date" : ISODate("2017-09-26T00:00:00.000+0000")},
{"date" : ISODate("2017-09-28T00:00:00.000+0000")}
]
}
Моя неработающая попытка была:
// day is 2017-09-27, day before is 2017-09-26
var day = new Date(2017, 09, 27, 0, 0, 0);
var dayBefore = new Date(day);
dayBefore.setDate(day.getDate() - 1);
var dayBeforeStart = dayBefore;
dayBeforeStart.setHours(0,0,0,0);
var dayBeforeEnd = dayBefore;
dayBeforeEnd.setHours(23,59,59,999);
coll.find({$and:[
{'calls.date' : {$nin:[day]}},
{'calls.date' : {$lte : dayBeforeEnd,
$gte : dayBeforeStart
}
}]
});