MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

mongoDB में किसी उपयोगकर्ता द्वारा बिताया गया कुल समय ज्ञात करें

आप 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] }
    }
  }}
])



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. स्प्रिंग डेटा मोंगोडब - 'कर्सर' विकल्प की आवश्यकता है

  2. Mongoid स्थापना के बाद सक्रिय रिकॉर्ड जनरेटर का उपयोग करना?

  3. नोड.जेएस से मोंगोडब से कनेक्ट करते समय ECONNREFUSED त्रुटि

  4. MongoDB के लिए PHP में आईएसओ दिनांक प्रारूप कैसे वापस करें?

  5. MongoDB में मित्र संबंध संग्रहीत करना?