本文介绍了MongoDb:在mongodb 3.6中将日期字符串转换为特定格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要在不使用dateFromString运算符中的格式字段的情况下将日期值解析为特定格式.
I need to parse date value to specific format without using format field in dateFromString operator.
蒙戈游乐场
当前情况: 在Mongodb 4.0中,如果我使用下面的代码格式化dateString,它会给我提到的输出.
Current situation : in Mongodb 4.0 if I format dateString using below it code it give me mentioned output.
parsedDate: { $dateFromString: { dateString: "$dateS", format: format: "%Y-%m-%dT%H" } } Output: "parsedDate": ISODate("2020-01-16T08:00:00Z")由于不支持3.6中的格式字段,因此无法使用. 如何将日期转换为 format: "%Y-%m-%dT%H"在3.6中?
I cannot use format field in 3.6 since its not supported. How do I convert my date to format: "%Y-%m-%dT%H" in 3.6?
推荐答案我认为以下查询将解决您的问题,因为MongoDB 3.6支持 dateFromString
I think following query will solve your problem because MongoDB 3.6 supports dateFromString
输入:
[ { "dateS": "2020-01-16T08" } ]查询:
db.collection.aggregate([ { "$project": { "year": {"$substr": ["$dateS",0,4]}, "month": {"$substr": ["$dateS",5,2]}, "day": {"$substr": ["$dateS",8,2]}, "hour": {"$substr": ["$dateS",11,2]} } }, { $addFields: { "isoString": { "$concat": ["$year","-","$month","-","$day","T","$hour",":00:00Z"] } } }, { $addFields: { "newDate": { $dateFromString: {"dateString": "$isoString"} } } } ])输出:
[ { "_id": ObjectId("5a934e000102030405000000"), "day": "16", "hour": "08", "isoString": "2020-01-16T08:00:00Z", "month": "01", "newDate": ISODate("2020-01-16T08:00:00Z"), "year": "2020" } ]更多推荐
MongoDb:在mongodb 3.6中将日期字符串转换为特定格式
发布评论