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

nhóm theo ngày / tháng và lấy điểm xếp hạng trung bình của ngày / tháng đó trong mongo

Để nhóm tài liệu theo ngày / tháng và trả lại khóa tháng trong đầu ra của bạn, trước tiên bạn cần $project các trường chính cho các định dạng thích hợp bằng cách sử dụng Ngày các toán tử, cụ thể là $dateToString $month các toán tử.

Điều này có thể được thực hiện trong $project giai đoạn trước $group nhưng không cần thiết vì $group đường ống chứa hầu hết bộ tích lũy toán tử.

Trước $group . avg / # grp._S_avg "> $avg toán tử và trả về tháng dưới dạng số nguyên từ đường dẫn trước đó bằng cách sử dụng $first toán tử tích lũy.

Chạy đường dẫn tổng hợp sau sẽ cho bạn kết quả mong muốn:

db.collection.aggregate([
  { "$group": {
    "_id": { 
        "$dateToString": { "format": "%Y-%m-%d", "date": "$ceatedAt" } 
    },
    "average": { "$avg": "$rating" },
    "month": { "$first": { "$month": "$ceatedAt" } },
  } }
]) 


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để thực hiện các lệnh MongoDB không phải CRUD và không cơ bản trong ObjCMongoDB?

  2. mongo tìm truy vấn trên joda datetime

  3. MongoDB:Không thiết lập được ổ cắm khi khởi động

  4. Xây dựng chỉ mục MongoDB - Ngăn người dùng kích hoạt các bản dựng mới

  5. MongoDB lưu trữ tài liệu của mình ở đâu?