我将unix时间戳存储为MongoDB的NumberLong
类型(毫秒),如何在Mongo shell中转换为人类可读的日期字符串?
答案 0 :(得分:1)
为了我将来的参考(并纳入其他答案):
db.mycollection.aggregate([
{$match:{"userId":"d1792d83-d854-44d5-9jc5-e3e20435958b"}},
{$project:{newDate:Date("$numberLongDate")}}
])
答案 1 :(得分:1)
NumberLong(123123123123131).toNumber().toString()
答案 2 :(得分:0)
您可以将NumberLong
值直接传递给Date
构造函数,如果您使用new
调用它,然后调用它上的toString()
将其转换为人类可读的字符串:
> var n = NumberLong('1397051113715')
> (new Date(n)).toString()
Wed Apr 09 2014 08:45:13 GMT-0500 (CDT)
但是你应该强烈考虑在MongoDB中将这些时间戳存储为Date
以获得更大的灵活性。
答案 3 :(得分:0)
我正在使用这样的表达式:
>Date(NumberLong("1397051113715"));
它也会起作用。
答案 4 :(得分:0)
我使用以下方法将unix NumberLong纪元转换为日期:
new Date(1413382500151)
答案 5 :(得分:0)
不需要将其强制转换为字符串,例如
>var a = db.collection.findOne({name :"zengse"},{"createDate":1,_id:0})
> a.createDate
NumberLong("1575741914380")
> var b = a.createDate.toNumber()
> new Date(b)
ISODate("2019-12-07T18:05:14.380Z")