创建一个依赖于当前时间的 mongo 视图
Posted
技术标签:
【中文标题】创建一个依赖于当前时间的 mongo 视图【英文标题】:Creating a mongo view that depends on the current time 【发布时间】:2018-07-15 12:30:49 【问题描述】:我有一个包含日期字段的集合,我想创建一个按当前日期过滤所有文档的 mongo 视图。例如,我希望我的视图包含过去 7 天的所有文档。
我有一个使用聚合管道创建视图的 javascript 脚本。我用javascript方法-new Date()写了最近7天的情况:
"$lt": [
"$subtract": [new Date(), "$DateOfDocument"], // difference in milliseconds
1000 * 60 * 60 * 24 * 7 // 7 days in milliseconds
]
但是当我执行创建视图的脚本时,mongo 会计算“new Date()”然后创建视图,“new Date()”的结果是 ISODate。 现在聚合管道会根据我上次执行脚本的时间来计算视图,而不是实际的当前日期。
"$lt": [
"$subtract": [ISODate("2018-02-05T06:52:32.10+0000"), "$DateOfDocument"],
604800000
]
有没有办法让视图按当前日期过滤?当前日期的任何聚合方法,例如 oracle 的 'sysdate'?我不想在每次想读取视图时都执行重新创建视图的脚本。
【问题讨论】:
【参考方案1】:看起来这个功能正在为 MongoDB 3.7 开发。 https://jira.mongodb.org/browse/SERVER-23656
【讨论】:
现在列为 4.1 的必需修复;希望这次能添加!以上是关于创建一个依赖于当前时间的 mongo 视图的主要内容,如果未能解决你的问题,请参考以下文章
在mongo中如何通过总记录获取表中记录的当前位置进行分页?