查询日期还是不存在?

时间:2017-06-17 05:31:46

标签: node.js mongodb mongoose mongodb-query

试着弄清楚我是否可以使用mongoose和nodejs来使这个查询工作。

   Product.find({
        price: { $gt: 2, $lt: 3},
        date: { $gt: new Date() || $exists: false}
    }). exec(callback);

是否有人知道是否可以检查日期是否不存在将其发回或者日期是否大于今天?

由于

1 个答案:

答案 0 :(得分:1)

使用enter image description here

Product.find({
  "price": { "$gt": 2, "$lt": 3 },
  "$or": [
    { "date": { "$gt": new Date() } },
    { "date": { "$exists": false } }
  ]  
}). exec(callback);

所有参数通常都是隐含的AND,所以就像"价格大于2且小于3" 你要说的另外"并且日期大于此日期或日期不存在"

只是用短语形式说明逻辑

使用"这样的多个字段,那么你实际使用的是$or

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);