Вы можете попробовать запрос ниже, где $$ NOW вернет текущее значение даты и времени:
db.collection.aggregate([
{
$addFields: {
date: {
$dateFromParts: {
year: { $year: "$$NOW" },
month: { $month: "$$NOW" },
day: { $dayOfMonth: "$$NOW" },
hour: { $toInt: { $substrBytes: ["$str", 0, 2] } },
minute: { $toInt: { $substrBytes: ["$str", 3, 2] } },
second: { $toInt: { $substrBytes: ["$str", 6, 2] } },
timezone: "Asia/Kolkata",
}
}
}
}
])
Тест: mongoplayground
Обновление:
db.collection.aggregate([
{
$addFields: {
date: {
$dateFromString: {
dateString: {
$concat: [
{
$dateToString: {
format: "%Y-%m-%d",
date: "$$NOW",
timezone: "Asia/Kolkata"
}
},
"T",
"$str"
]
},
timezone: "Asia/Kolkata"
}
}
}
}
])
Тест: mongoplayground