Node.js 查询日期或不存在?
试图弄清楚我是否可以使用mongoose和nodejs来实现这个查询Node.js 查询日期或不存在?,node.js,mongodb,mongoose,mongodb-query,Node.js,Mongodb,Mongoose,Mongodb Query,试图弄清楚我是否可以使用mongoose和nodejs来实现这个查询 Product.find({ price: { $gt: 2, $lt: 3}, date: { $gt: new Date() || $exists: false} }). exec(callback); 是否有人知道是否有可能检查日期是否不存在并将其发回,或者日期是否大于今天 谢谢使用: 所有的参数通常都是隐式的,因此就像您另外说的“价格大于2,小于3”一样,“日期大于此日期
Product.find({
price: { $gt: 2, $lt: 3},
date: { $gt: new Date() || $exists: false}
}). exec(callback);
是否有人知道是否有可能检查日期是否不存在并将其发回,或者日期是否大于今天
谢谢使用:
所有的参数通常都是隐式的,因此就像您另外说的“价格大于2,小于3”一样,“日期大于此日期或日期不存在”
只是用短语的形式解释一下逻辑
使用“像这样的多个字段,然后实际使用
如果我有date1和date2,并且想要对两者进行相同的检查,我可以执行多个$ors吗?“$或”:[{“日期”:{“$gt”:新日期()}},{“日期”:{“$exists”:false}],“$或”:[{“日期2”:{“$gt new date()},{“日期2”:{“$exists”:false}]@Lion789是的。这是您实际使用显式
$和运算符的情况之一。出于与$或相同的基本原因,参数在一个数组中。不是像您这样做,而是像我这样做。请参阅答案内容。谢谢,我想知道这是否也允许,请继续获取错误:{u id:{$nin:[userObj.ids]}……数组[]为空,但它给我一个cast caster错误:如果您还有其他问题,请确保在执行之前搜索现有答案。
Product.find({
"price": { "$gt": 2, "$lt": 3 },
"$or": [
{ "date": { "$gt": new Date() } },
{ "date": { "$exists": false } }
]
}). exec(callback);
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);