我不确定是否可以这样做但是我在这里看到有人对此有任何想法。
在我的mongodb查询中,例如,如果我这样做
db.collection.find({_id:1}, {_id:0, myDt:1})
我得到这样的东西
"myDt" : ISODate("1976-06-27T00:00:00.000Z")
我的问题是我在投影中可以做些什么来将日期作为字符串在这个' yyyy-mm-dd'格式而不是所有ISODate(字符串)?
db.collection.find({_id:1}, {_id:0, myDt:{do some magic work to get the yyyy-mm-dd back}})
感谢。
答案 0 :(得分:1)
最好使用客户端处理格式化日期。
但是你当然可以通过使用聚合框架$project
来完成这些文件。在$project
阶段,您需要使用$year
,$month
和$dayOfMonth
运算符,这些运算符分别将日期的年,月和日作为数字返回。当然要连接您首先需要使用$toLower
将这些数字转换为字符串并使用$concat
运算符。
db.collection.aggregate(
[
{ "$project": {
"_id": 0,
"date": {
"$concat": [
{ "$toLower": { "$year": "$myDt" } },
"-",
{ "$toLower": { "$month": "$myDt" } },
"-",
{ "$toLower": { "$dayOfMonth": "$myDt" } }
]
}
}}
]
)
但您可以随时使用$toLower
运算符返回字符串日期:
db.collection.aggregate([ { "$project": { "date": { "$toLower": "$myDt" } } } ] )