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