如何获得Mongo集合中字段值和当前时间之间的毫秒差异

时间:2018-06-01 15:35:21

标签: mongodb aggregation-framework

我有一个集合,其中单个文档如下所示:

{
  "_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内没有正确检测到该字段。有没有正确重写的建议?

1 个答案:

答案 0 :(得分:2)

MongoDb不提供类型更改。在您的情况下,时间戳应该是数字,以便您的条件适用。因此,我建议您使用更新查询通过某些编程代码显式转换数据库中的数据。