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

Tính toán mức trung bình trong 200 ngày qua trong tổng hợp MongoDB và NodeJS

Bạn phải lọc tài liệu trước khi nhóm chúng. Sẽ như thế này:

db.collection.aggregate([
   {
      $addFields: {
         DateObj: {
            $regexFindAll: { input: "$Date", regex: "\\d+" }
         }
      }
   },
   {
      $set: {
         DateObj: {
            $dateFromParts: {
               year: { $toInt: { $arrayElemAt: ["$DateObj.match", 0] } },
               month: { $toInt: { $arrayElemAt: ["$DateObj.match", 1] } },
               day: { $toInt: { $arrayElemAt: ["$DateObj.match", 2] } },
               hour: { $toInt: { $arrayElemAt: ["$DateObj.match", 3] } },
               minute: { $toInt: { $arrayElemAt: ["$DateObj.match", 4] } },
               second: { $toInt: { $arrayElemAt: ["$DateObj.match", 5] } },
               timezone: "Europe/Zurich"
            }
         }
      }
   },
   {
      $match: {
         $expr: {
            $gte: ["$DateObj", { $subtract: ["$$NOW", 200 * 60 * 60 * 24 * 1000] }]
         }
      }
   },
   {
      "$group": {
         _id: null,
         "Volume": {
            "$avg": "$Volume"
         }
      }
   }
])



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tùy chọn cấu hình --bindip trong mongodb làm gì?

  2. Không thể sử dụng BsonIgnoreIfDefault cho thuộc tính loại long

  3. xác thực dòng lệnh của mongo không thành công

  4. Sắp xếp theo trường ảo trong mongoDB (mongoose)

  5. Làm cách nào để tuần tự hóa các trường chrono ::DateTime dưới dạng ISODate khi sử dụng nguyên mẫu trình điều khiển Rust Mongo?