2012-11-17 2 views
2

Я пытаюсь получить этот простой запрос для работы с Mongoose без везения: найти все события, происходящие завтра в конференц-центре. Для каждого события расписание может быть либо конкретным временем начала, либо типом даты, либо массивом дат в формате строки '2012/11/16'. Тем не менее, одно и то же условие query.or работает, когда нет условия для {place: 'conference center}, поэтому я думал, что могу неправильно составить этот запрос. Мне пока не повезло, предложения или помощь, пожалуйста? Условие «завтра» - это фильтр, добавленный в условие «место», поэтому я использую цепочку запросов.

Спасибо!

Event.find({place:'conference center'}).or([ 
     { 
     'schedule.beginAtUtc' : { $gte: startOfTomorrow }, 
     'schedule.beginAtUtc' : { $lt: endOfTomorrow } 
     }, 

     { 
     'schedule.dates' : '2012/11/17' 
     } 
    ]); 

ответ

4

Вы должны объединить два 'schedule.beginAtUtc' поля в один как объект не может иметь два поля с таким же именем.

Как это:

Event.find({place:'conference center'}).or([ 
    { 
    'schedule.beginAtUtc' : { $gte: startOfTomorrow, $lt: endOfTomorrow } 
    }, 

    { 
    'schedule.dates' : '2012/11/17' 
    } 
]); 
+0

Это решило проблему. Благодаря! – yichen

Смежные вопросы