Mongodb 如何在聚合管道的$match块中使用$$NOW
给定添加到采集样本的文档,如下所示:Mongodb 如何在聚合管道的$match块中使用$$NOW,mongodb,mongodb-query,Mongodb,Mongodb Query,给定添加到采集样本的文档,如下所示: db.sample.insert({"activeOn":ISODate("2000-01-01")}) 我认为我应该能够将该文档与以下聚合匹配 db.sample.aggregate([{"$match":{"activeOn":{"$lte":"$$NOW"}}}]) 但没有找到任何文件。 我使用的是MongoDB版本4.2.3 关于在$match块中使用$$NOW系统变量,我缺少什么?文档: $match查询语法与读取操作查询语法相同;i、 e.$
db.sample.insert({"activeOn":ISODate("2000-01-01")})
我认为我应该能够将该文档与以下聚合匹配
db.sample.aggregate([{"$match":{"activeOn":{"$lte":"$$NOW"}}}])
但没有找到任何文件。
我使用的是MongoDB版本4.2.3
关于在$match块中使用$$NOW系统变量,我缺少什么?文档:
$match查询语法与读取操作查询语法相同;i、 e.$match不接受原始聚合表达式。要在$match中包含聚合表达式,请使用$expr查询表达式:
这是一个吗?是,因为它是一个系统变量:
表达式可以包括字段路径、文字、系统变量、表达式对象和表达式运算符。表达式可以嵌套
所以我们所要做的就是这样使用:
从文档中:
$match查询语法与读取操作查询语法相同;i、 e.$match不接受原始聚合表达式。要在$match中包含聚合表达式,请使用$expr查询表达式:
这是一个吗?是,因为它是一个系统变量:
表达式可以包括字段路径、文字、系统变量、表达式对象和表达式运算符。表达式可以嵌套
所以我们所要做的就是这样使用:
db.sample.aggregate([
{
"$match": {
$expr: {
$lte: [
"$activeOn",
"$$NOW"
]
}
}
}
])