MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да намерите разликата в часовете между две дати в mongodb

Можете да използвате агрегирането по-долу

db.collection.aggregate([
  { "$project": {
    "difference": {
      "$divide": [
        { "$subtract": ["$logoutTime", "$loginTime"] },
        60 * 1000 * 60
      ]
    }
  }},
  { "$group": {
    "_id": "$studentID",
    "totalDifference": { "$sum": "$difference" }
  }},
  { "$match": { "totalDifference": { "$gte": 20 }}}
])

Трябва просто да $subtract loginTime от logoutTime и ще ви даде извадения времеви печат и след това просто $divide то с 3600000 за да получите времето в часове.

MongoPlayground




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Частична актуализация на поддокумент с nodejs/mongoose

  2. Mongoose {strict:throw} не извежда грешка

  3. Mongoid изтрива много с ограничение

  4. Изберете данни, където диапазонът между две различни полета съдържа дадено число

  5. Грешка в Mongoose - няма метод "toObject" след надграждане