假设我正在使用mongo.shell,我运行db.collection.find()。pretty()来获取此信息:
{
"name" : "foo",
"parent" : "bar",
"createdDate" : NumberLong("12345678"),
"modifiedDate" : NumberLong("12345679")
}
我希望这些日期是人类可读的东西,我希望能够以最少的努力获得这些日期。
有没有办法设置我的.mongorc.js文件自动将这些值转换为人类可读日期,可能是通过指定我认为日期字段的确切字段?如果不是什么是最方便的语法添加到我的查找调用,以便在需要时快速将日期转换为人类可读?
答案 0 :(得分: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
}