我想用Mongoose做复杂和/或查询。这是一些伪代码,显示了我正在尝试做的事情:
Find persons where (
(date_begin == null || date_begin <= today)
&& (date_end == null || date_end >= tomorrow)
)
这是我在真正的Mongoose代码中失败的尝试:
query = Person
.find()
.where('date_begin').equals(null).or.where('date_begin').lte(today)
.where('date_end').equals(null).or.where('date_end').gte(tomorrow)
任何建议都将不胜感激! (仅供参考,今天和明天都设置得很好,这是我要问的Mongoose语法。)
答案 0 :(得分:3)
Dylanized,
您可以直接使用mongodb Logical Query Operators执行以下操作:
Person.find({
$and: [
{ $or: [{date_begin: null}, {date_begin: {$lte : today}}] },
{ $or: [{date_end: null}, {date_end: {$gte : tommorow}}] }
]
}, function (err, results) {
...
}