我必须执行一个查询,以检查当前时间(现在)是否在另一个集合中的时间范围内。我正在使用查找来获取范围,并使用$ gt和$ lt进行比较。问题是我需要比较的字段是“日期”字段,我需要以某种方式从比较字段中提取月,日和年,并使用这些值以及now()的当前时,分和秒创建一个新的日期。 。
1)可以吗?
2)如果是,我将如何执行此查询?
这是我当前的查询:
{
$match: {
$and: [
{ testField: { $eq: false } },
{ rule: { $ne: null } }
]
}
},
{
"$lookup": {
from: "rules",
localField: "rule",
foreignField: "_id",
as: "rules"
}
},
{
$unwind: {
path: "$rules",
preserveNullAndEmptyArrays: true
}
},
{
$match: {
$or: [
{ $or: [ { action: { $eq: null} }, { action: { $eq: false } }, { action: { $exists: false } } ] },
{ $and: [
{ "rules.start": { $lt: (new Date()) } }, //<— how would I get the fullYear, month, and date from the rules.start
{ "rules.end": { $gt: (new Date()) } } //<— how would I get the fullYear, month, and date from the rules.end
]
}
]
}
}