MongoDB将日期转换为字符串

时间:2016-01-18 13:33:18

标签: mongodb

问题: 从" SentTimestamp"获得Y-m-d时出错:ISODate(" 2015-12- 23T22:20:15Z")

详情:

文件: { ... " SentTimestamp" :ISODate(" 2015-12-23T22:20:15Z") ... }

查询:

db.foo.find({},{$ dateToString:{格式:&#34;%Y-%m-%d&#34;,日期:&#34; $ SentTimestamp&#34;}})< / p>

错误: 错误:错误:{     &#34; $ ERR&#34; :&#34;无法规范化查询:obj中的BadValue&gt; 1字段:{format:\&#34;%Y-%m-%d \&#34;,date:\&#34; $ SentTimestamp \&#34; }&#34 ;,     &#34;代码&#34; :17287

有人可以解释我如何将日期转换为字符串,上面有什么问题?

1 个答案:

答案 0 :(得分:4)

您无法在 $dateToString 方法中使用 find() 运算符进行投影。相反,将其与 aggregation framework 管道阶段中的$project一起使用以返回文档 将datetime字段转换为具有所需格式的字符串,如下例所示:

db.foo.aggregate([
    {
        "$project": {
            "sentDateString": { 
                    "$dateToString": { 
                         "format": "%Y-%m-%d", 
                         "date": "$SentTimestamp" 
                    } 
            },
            "otherFields": 1, ....
        }
    }
])
相关问题