Запросы диапазона дат MongoDB (с дополнительными датами) - PullRequest
0 голосов
/ 06 июля 2011

У меня есть объекты с дополнительными свойствами startDate и endDate

Я бы хотел запросить мои объекты как:

startDate равно нулю или больше чем сегодня И endDate равно Нуль или меньше, чем сегодня.

Если бы у меня была только одна единственная дата, я бы, конечно, использовал оператор "или"

{$or : [{startDate : null}, {startDate : {$gte : new Date()}}]}

Тогда я мог бы сделать сложный запрос, подобный

{$or : [{startDate : null, endDate : null}, 
        {startDate : {$gte : new Date()}, endDate : null}, 
        {startDate : {$gte : new Date()}, endDate : {$lte : new Date()}}, 
        {startDate : null, endDate : {$lte : new Date()}}
       ]}

Настоящая проблема здесь в том, что я уже использую $ или условие для других ограничений, что делает его еще более сложным.

Какие бы у вас были варианты решения этой, казалось бы, очень простой проблемы?

Ответы [ 2 ]

1 голос
/ 06 июля 2011

Реализуйте некоторую логику в коде приложения, чтобы указать правильный запрос на основе ограничений параметров, вместо того, чтобы пытаться решить эту проблему непосредственно на уровне запросов MongoDB.Язык запросов MongoDB отчасти слишком слаб в этом случае.

0 голосов
/ 06 июля 2011

Я думаю, вам нужно это: https://jira.mongodb.org/browse/SERVER-1089.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...