我有使用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()}}
]}
这里真正的问题是我已经使用$或条件进行其他限制,使其更加复杂。
你有什么选择来解决这个看似非常简单的问题?
答案 0 :(得分:1)
在应用程序代码中实现一些逻辑,以便根据参数约束指定正确的查询,而不是尝试直接在MongoDB查询层上解决此问题。在这种情况下,MongoDB的查询语言部分太弱了。
答案 1 :(得分:0)