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

Mongoose:Làm cách nào để tải lên số liệu thống kê dữ liệu trong 7 ngày qua từ DB?

Truy vấn bạn đang mô tả đang nhóm một loạt tài liệu theo ngày, khi những tài liệu đó chứa ngày giờ UTC.

MongoDB lưu trữ nội bộ ngày / giờ dưới dạng số mili giây kể từ ngày 1 tháng 1 năm 1970, do đó, bước đầu tiên sẽ cần tính toán ngày bắt đầu cho mỗi tài liệu, sau đó nhóm theo giá trị đầu ngày đó.

Nếu bạn đang sử dụng MongoDB 5.0, bạn có thể sử dụng $ dateTrunc nhà điều hành:

{$dateTrunc:{date:"$createdAt",unit:"day",timezone:"America/New_York"}}

Đối với các phiên bản cũ hơn, bạn có thể tính toán đối tượng ngày đại diện cho ngày bắt đầu hoặc tạo một chuỗi chỉ chứa ngày.

Đối với tùy chọn chuỗi:

{$concat: [
   {$toString:{$year:{ date:"$createdAt", timezone:"America/New_York" }}},
   "-",
   {$toString:{$month:{ date:"$createdAt", timezone:"America/New_York" }}},
   "-",
   {$toString:{$dayOfMonth:{ date:"$createdAt", timezone:"America/New_York" }}},
]}

Vì vậy, về tổng thể, quy trình tổng hợp sẽ là:

  • $ khớp để chọn tài liệu trong khung thời gian mong muốn
  • $ project để tính thời gian bắt đầu trong ngày cho mỗi tài liệu
  • $ nhóm vào đầu ngày, đếm số lần xuất hiện
  • các giai đoạn tiếp theo để chuyển đổi tài liệu sang định dạng mong muốn


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tải lên và lưu trữ hình ảnh

  2. PyMongo - lặp lại con trỏ

  3. MongoDB tìm so sánh truy vấn với CurrentDate

  4. Tìm và sửa đổi với MongoDB C #

  5. MongoDB findAndModify từ nhiều máy khách