mongodb:将查找结果用作过滤条件,不适用于时间戳

时间:2019-09-20 02:13:24

标签: mongodb mongoose mongodb-query

在下面的示例中,我尝试从状态集合中检索具有规则分配的文档,其中当前日期在当前时间范围内。如果我注释掉最低匹配条件,它会起作用。但是,如果我使用时间戳匹配条件,则不会返回任何结果。

如何使用mongodb执行此查询?

state = { deferred: true, rule: ObjectId("5d83fd3a176edf9f4242622e") }
rules = { _id: ObjectId("5d83fd3a176edf9f4242622e"), start: 1568916000, end: 1568930400 }


db.state.aggregate([{
  $match: {
            { deferred: { $ne: null} }
        }
  },
  { 
    "$lookup": {
        from: "rules",
        localField: "rule",
        foreignField: "_id",
        as: "rules_current"
    }
  },
  {
     $unwind: "$rules_current"
  },
  {
     $match: {
         $and: [
             { "rules_current.start": { $lt: (new Date().getTime()) } },
             { "rules_current.end": { $gt: (new Date().getTime()) } }
        ]
     }
  }
])

0 个答案:

没有答案