我对MongoDB中的日期有疑问。创建帖子时,我会使用Date.now()
获取日期。当我检查数据库时,它存储为:ISODate("2018-12-08T09:40:38.623+0000")
。
如果我执行普通的GraphQL查询,将得到结果:"created_at": "1544262038623"
。
在我的架构中,查询定义为created_at: String
。 问题编号1:如何进行查询以显示日期,而不是自时期以来的时间戳?
问题编号2:我想获得时间戳以进行一些汇总计算。但是总是以日期格式,无论我做什么,我都无法获得时间戳。我试过:$ toDecimal,新的Date(“ $ created_at”)和其他东西。我怎么做?我需要自纪元以来的毫秒数,如上面的查询(1544262038623)。
其他信息:使用猫鼬和阿波罗。 MongoDB是mLab。
Post.aggregate([
{ $match: { author_id: "uRKNnDZIv" }},
{ $addFields: {
timestamp: "$created_at"
}
])
答案 0 :(得分:0)
如果要将日期转换为时间戳,则可以使用$toLong
聚合
Post.aggregate([
{ "$match": { "author_id": "uRKNnDZIv" }},
{ "$addFields": {
"timestamp": { "$toLong": "$created_at" }
}}
])
如果您想将时间戳转换为日期,则可以使用$toDate
聚合
Post.aggregate([
{ "$match": { "author_id": "uRKNnDZIv" }},
{ "$addFields": {
"timestamp": { "$toDate": "$created_at" }
}}
])