mongodb - 获取所有文档,其中 diff beetwen 当前时间戳和一些具有纳秒值的列的值更多一些间隔
问题描述
我有 mongodb 版本 4.4.3 并且我在一些集合中存在具有数据的结构 -ts
具有纳秒值的列,例如1.6134264584976e+18
. 我的目标是获取当前时间戳的所有文档 - ts
>= 25min
我发现的 {$toDate: '$ts'} 将我的转换为 milisend
db.getCollection('device_heartbeat').aggregate( [ {
$project: {
date: {$toDate: '$ts'}
}
}
]
)
结果
"date" : Date(1613426458497597952)
如何向该查询添加条件?
解决方案
我解决了我的问题,这是查询
db.getCollection('device_heartbeat').aggregate([
{$match: { $expr: { $gt: [ { $subtract: [ {$toLong: new Date()}, { $divide: [ {$toLong: {$toDate: '$ts'}} , 1000000 ] } ] }, 1500 ] }}},
{$project: {
diff: { $subtract: [ {$toLong: new Date()}, { $divide: [ {$toLong: {$toDate: '$ts'}} , 1000000 ] } ] }
}}
])
推荐阅读
- amazon-web-services - 如何将标签附加到 AWS 分支
- firebase - 使用 Firebase SDK 对我的 React 应用程序进行 Google 分析
- python - Selenium Web-Driver 找不到元素(Selenium IDE 确实找到了它)
- ruby-on-rails - “.js 不存在于资产管道中”
- php - CakePHP - 使用保存关联保存到两个以上的模型
- java - 在java中,提供参数以扩展参数化接口的接口是它的同义词吗?
- spring - Spring boot Rest 创建一个可以引用另一个类别的类别或不
- c# - 我对订阅重复购买问题有疑问
- c++ - c ++模板化类,带有指向可变函数的函数指针
- c# - 如何将数组传递给 OracleParameter for IN 条件?