如何将MongoDB中存储为字符串的日期转换为ISODate?

时间:2018-02-21 12:13:13

标签: mongodb

我有一个集合,其中每个文档都有一个时间字段,其值存储类似于" 2017年12月21日和#34;。 我想使用投影将其转换为ISODate。 我的查询:

db.getCollection('orders').aggregate([{

        $project:{time : {$add : new Date("$time")}}
        }])

但这总是给我ISODate(" 1970-01-01T00:00:00.000Z")。

2 个答案:

答案 0 :(得分:0)

你可以试试这个,

db.getCollection('orders').aggregate([{
            $project: {
                time: {
                    $dateToString: {
                        format: "%d-%m-%G",
                        date: new Date("$time")
                    }
                }
            }
        }
    ])

没有任何字符串函数可以获得月份名称eg.Jan,Feb..Dec。 但你可以参考https://docs.mongodb.com/manual/reference/operator/aggregation/dateToString/ 更多信息。

答案 1 :(得分:0)

ISODate("1970-01-01T00:00:00.000Z")格式没有问题。

您应该以{{1​​}}格式存储日期,但会根据您更改客户端的格式。

基本上您希望以ISO格式显示日期。

您可以使用http://momentjs.com/根据您的日期显示日期。