आप timeOfDay
पा सकते हैं TimeOfVisit
. से फ़ील्ड करें और फिर $sum
. का उपयोग करें कुल गिनती प्राप्त करने के लिए
db.collection.aggregate([
{ "$match": { "User": req.query.User }},
{ "$addFields": {
"timeOfDay": {
"$mod": [
{ "$toLong": "$TimeOfVisit" },
1000*60*60*24
]
}
}},
{ "$group": {
"_id": "$location",
"totalTimeInMilliseconds": { "$sum": "$timeOfDay" }
}}
])
Output
[
{
"_id": "Reception",
"totalTimeInMilliseconds": 33165688
},
{
"_id": "Cafeteria",
"totalTimeInMilliseconds": 98846064
}
]
आप दिन, घंटे, मिनट या सेकंड प्राप्त करने के लिए इसे और विभाजित कर सकते हैं
1 hour = 60 minutes = 60 × 60 seconds = 3600 seconds = 3600 × 1000 milliseconds = 3,600,000 ms.
db.collection.aggregate([
{ "$addFields": {
"timeOfDay": {
"$mod": [
{ "$subtract": [ "$TimeOfVisit", Date(0) ] },
1000 * 60 * 60 * 24
]
}
}},
{ "$group": {
"_id": "$location",
"totalTimeInMiniutes": {
"$sum": { "$divide": ["$timeOfDay", 60 × 1000] }
}
}}
])
मोंगोडब के लिए 4.0 और ऊपर
db.collection.aggregate([
{ "$addFields": {
"timeOfDay": {
"$mod": [
{ "$toLong": "$TimeOfVisit" },
1000 * 60 * 60 * 24
]
}
}},
{ "$group": {
"_id": "$location",
"totalTimeInMiniutes": {
"$sum": { "$divide": ["$timeOfDay", 60 × 1000] }
}
}}
])