MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Bộ sưu tập Mongodb tổng số giờ thu thập

Đề xuất của tôi sẽ là đề xuất này:

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

Hãy lưu ý, nó chỉ hoạt động trong thời hạn tối đa một năm, tức là 366 ngày.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để sử dụng async-await với MongoClient

  2. Cách sử dụng toán tử vị trí $ trong trình điều khiển MongoDB C # phiên bản 2

  3. 2 cách để giới hạn tài liệu được trả lại trong MongoDB

  4. OpenSSL không tìm thấy trên MacOS Sierra

  5. Mongoose:findOneAndUpdate không cập nhật trường hiện có