वास्तव में, यह संभव है, ट्रिक यह है कि आप अपने मिलीसेकंड के समय को शून्य-मिलीसेकंड दिनांक () ऑब्जेक्ट के समान सिंटैक्स का उपयोग करके जोड़ें:
dt : {$add: [new Date(0), "$time"]}
मैंने परिणाम देने के लिए ऊपर से आपके एकत्रीकरण को संशोधित किया है:
db.events.aggregate(
{
$project : {
_id : "$_id",
dt : {$add: [new Date(0), "$time"]}
}
},
{
$project : {
_id : "$_id",
date : {
hour : {$hour : "$dt"}
}
}
}
);
परिणाम है (आपके नमूना डेटा की एक प्रविष्टि के साथ):
{
"result": [
{
"_id": ObjectId("532828ac338ed9c33aa8eca7"),
"date": {
"hour": 11
}
}
],
"ok": 1
}