Я думаю, что следующий запрос решит вашу проблему, потому что MongoDB 3.6 поддерживает 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"
}
]