MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Koleksi Mongodb objek koleksi jam total

Proposal saya adalah yang ini:

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" }] } } }
])

Perlu diketahui, ini hanya berfungsi untuk durasi hingga satu tahun, yaitu 366 hari.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara meningkatkan kinerja operasi pembaruan di Mongo?

  2. Opsi konfigurasi runtime ClusterControl

  3. Terselubung RFC3339 DateTime to Date di java

  4. Mongo menghapus dokumen terakhir

  5. Bagaimana MongoDB memperlakukan kueri find().sort() sehubungan dengan indeks tunggal dan majemuk?