如何制作一个与时间相关的mongodb视图管道



我想创建一个名为"orders4H"的mongodb视图,它总是从我们的"orders"集合中返回具有createdAt字段值的文档,该字段值为<=NOW-4小时。然后,任何使用"orders4H"视图作为收集源的工具都将始终获得最近4小时的最新订单数据。视图创建需要一个聚合管道。然而,我不知道如何制作一个在相对日期匹配美元的管道。

在mongodb 4.2中,他们添加了一个名为NOW的聚合系统变量,如果我能让它在查询文档中工作的话,它似乎就是可以使用的。我可以使用它来创建新字段,例如,如果我将timeNow:"$$NOW"放在$addFields阶段,我会得到一个具有当前日期时间的新字段。现在我想在查询评估中使用这个"$$Now"。

问题的简短版本-我如何编写一个$match管道阶段,该阶段将与文档中的日期时间字段进行服务器时间相对比较?

MongoDB票证意味着已经添加了这种支持。。。但我不知道如何在查询中使用$$NOW。有人知道怎么做吗?

以下是我找到的相关门票:

https://jira.mongodb.org/browse/SERVER-37713https://jira.mongodb.org/browse/SERVER-23656

在mongodb技术支持的帮助下,我能够获得一个与mongodb 4.2一起工作的$match阶段,以进行时间相关查询:

[ 
{ $match: 
{ $expr: 
{ $gt: [ 
"$_created_at", 
{ $subtract: [ "$$NOW", 4 * 60 * 60 * 1000] } ] 
} 
} 
}
]

最新更新