2016-04-29 54 views
1

可以说我使用mongo.shell和我运行db.collection.find()漂亮()来得到这个:显示时间戳日期壳

{ 
    "name" : "foo", 
    "parent" : "bar", 
    "createdDate" : NumberLong("12345678"), 
    "modifiedDate" : NumberLong("12345679") 
} 

我希望这些日期是人类可读的东西,我希望尽可能以最少的努力获得。

有没有办法将我的.mongorc.js文件设置为自动将这些值转换为人类可读的日期,也许通过指定我认为是日期字段的确切字段?如果不是最方便的语法添加到我的查找电话快速将日期转换为人类可读,如果需要?

回答

1

您可以使用聚合并格式化日期字符串。

db.collection.aggregate(
    [ 
    { 
     $project: { 
       name: 1, 
       parent: 1, 
       readableCreatedDate: { $dateToString: { format: "%Y-%m-%d %H:%M:%S", date: "$createdDate" } }, 
       readableModifiedDate: { $dateToString: { format: "%Y-%m-%d %H:%M:%S", date: "$modifiedDate" } } 
     } 
    } 
    ] 
) 

注意:我已经在3.2版中测试了一个类似的情况,我猜它是从版本3.0开始的。此外,在我的情况的日期的数据类型是ISODate不NumberLong

MongoDB的文件看起来是这样的,

{ 
    "_id" : ObjectId("xxxxxxxx"), 
    "endTime" : ISODate("2016-09-13T08:16:52.915Z"), 
    "startTime" : ISODate("2016-09-13T08:16:52.915Z"), 
    "__v" : 0 
}