试图弄清楚我是否可以使用 mongoose 和 nodejs 使这个查询工作。
Product.find({
price: { $gt: 2, $lt: 3},
date: { $gt: new Date() || $exists: false}
}). exec(callback);
有谁知道是否可以检查日期是否不存在将其发回或日期是否大于今天?
谢谢
使用$or
:
Product.find({
"price": { "$gt": 2, "$lt": 3 },
"$or": [
{ "date": { "$gt": new Date() } },
{ "date": { "$exists": false } }
]
}). exec(callback);
所有参数通常都是隐含的 AND,因此就像“价格大于 2 且小于 3”一样,您还说“AND 日期大于此日期或日期不存在”。
只是为了以短语形式拼出逻辑
有了“像这样的多个字段,那么你实际上使用了一个$and
Product.find({
"$and": [
{ "price": { "$gt": 2, "$lt": 3 } },
{ "$or": [
{ "date1": { "$gt": new Date() } },
{ "date1": { "$exists": false } }
]},
{ "$or": [
{ "date2": { "$gt": new Date() } },
{ "date2": { "$exists": false } }
]}
]
}). exec(callback);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句