MongoDB日期范围查询(带有可选日期)

时间:2011-07-06 13:11:54

标签: json mongodb

我有使用optionnal startDate和endDate属性的对象

我想查询我的对象,如:

  

startDate等于null或更高   比今天和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 个答案:

答案 0 :(得分:1)

在应用程序代码中实现一些逻辑,以便根据参数约束指定正确的查询,而不是尝试直接在MongoDB查询层上解决此问题。在这种情况下,MongoDB的查询语言部分太弱了。

答案 1 :(得分:0)

我认为你需要这个:https://jira.mongodb.org/browse/SERVER-1089