我有一个集合,其中单个文档如下所示:
{
"_id" : "123456789",
"created_timestamp" : "1522950461031"
}
如您所见,created_timestamp日期作为String存储为epoch值。 (遗憾的是现在无法改变)
我需要编写一个查询来计算“经过的时间”,即在任何给定时间点对所有文档current time - created_time
。
这是我到目前为止所尝试的:
db.getCollection('testEntity').aggregate([
{$match : {"_id" : "123456789"}},
{$project: {_id : 1, created_timestamp: 1 ,
dateDifference: { $subtract: [ new Date() , new Date("$created_timestamp")]}}}])
但它没有正确计算差异。我认为在$subtract
内没有正确检测到该字段。有没有正确重写的建议?
答案 0 :(得分:2)
MongoDb不提供类型更改。在您的情况下,时间戳应该是数字,以便您的条件适用。因此,我建议您使用更新查询通过某些编程代码显式转换数据库中的数据。