MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Kolekcja obiektów Mongodb łączna liczba godzin kolekcji

Moja propozycja byłaby taka:

db.collection.aggregate([
   {
      $addFields: {
         duration: {
            $toLong: {
               $dateFromParts: {
                  year: 1970,
                  hour: { $toInt: { $first: { $split: ["$durationHrs", ":"] } } },
                  minute: { $toInt: { $last: { $split: ["$durationHrs", ":"] } } },
               }
            }
         }
      }
   },
   { $group: { _id: null, durations: { $sum: "$duration" } } },
   {
      $set: {
         h: {
            $toInt: {
               $sum: [{
                  $multiply: [
                     { $dayOfYear: { $toDate: "$durations" } }, 24]
               },
               -24,
               { $hour: { $toDate: "$durations" } }]
            }
         },
         m: { $minute: { $toDate: "$durations" } }
      }
   },
   { $project: { durations: { $concat: [{ $toString: "$h" }, ":", { $toString: "$m" }] } } }
])

Pamiętaj, że działa tylko przez okres do jednego roku, czyli 366 dni.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jaka jest różnica między metodami insert(), insertOne() i insertMany()?

  2. Zarządzanie kronikowaniem w MongoDB

  3. Jak FILTROWAĆ dane zwrócone między dwiema datami z mongodb za pomocą agregacji:dopasowania, wyszukiwania i projektu?

  4. JSON z EJS do obiektu JSON w JS

  5. Jak zachowana jest kolejność właściwości dla sortowania w mongodb?