首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在mongodb聚合中将时间戳转换为ISO日期

如何在mongodb聚合中将时间戳转换为ISO日期
EN

Stack Overflow用户
提问于 2015-01-27 14:38:52
回答 3查看 10.9K关注 0票数 4

我使用的是node.js mongodb客户端。我在一个集合中有一个时间戳值,现在我想使用aggregate将时间戳转换为IOSDate,这样我就可以很容易地比较它。但是我不知道该怎么做。

代码语言:javascript
复制
   var db = game.getDB();
    var coll = db.collection("LoginRecord");
    coll.aggregate([
        {
            $project: {
                "PT" : 1,
                "PID" : 1,
                "regDate" : new Date("$createTime"), //#####createTime is a timestamp, I want to convert it to IOSDate
                "loginDay" : { $dayOfYear : "$_serverDate"}
            }
        },
        {
            $group : {
                "_id" : "$loginDay",
                "logUsers" : { $addToSet: "$PID"}
            }
        },
        {
            $unwind : "$logUsers"
        },
        {
            "$group" : {
                "_id" : "$_id",
                "logCount" : { $sum: 1}
            }
        }
    ], function(err, res) {
        logger.info("aggregate res " + JSON.stringify(res));
    });
EN

回答 3

Stack Overflow用户

发布于 2018-07-28 05:28:31

MongoDB4.0引入了$toDate聚合,它可以简单地将时间戳转换为ISO日期

代码语言:javascript
复制
db.collection.aggregate([
  { "$project": {
    "regDate": { "$toDate": "$createTime" }
  }}
])

你可以试试here

票数 4
EN

Stack Overflow用户

发布于 2018-02-01 02:12:12

作为参考的convert milliseconds to date in mongodb aggregation pipeline for group by?

将毫秒(timestamp)转换为date对象的方法如下:

代码语言:javascript
复制
"regDate": {
   $add: [ new Date(0), "$createTime" ]
}
票数 3
EN

Stack Overflow用户

发布于 2015-01-27 15:22:58

在使用聚合框架之前,只需查询集合并将文档更新为ISODate日期格式。仅供内部使用的Mongodb时间戳对象。因此,您应该永久地将类型切换为ISODate。链接到warning.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28164623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档