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

nhóm MongoDB thu thập theo tháng và tổng doanh thu cho biểu đồ churn / doanh thu

Nếu tôi hiểu đúng, bạn muốn doanh thu theo khách hàng và theo tháng.

Toán tử $ group trong một truy vấn tổng hợp là chính xác những gì bạn đang tìm kiếm ở đây.

db.orders.aggregate([
    { $group : { 
            _id: { 
                customer_id: "$customer_id",
                month: {$month: "$order_date"}
            },
            revenue: {$sum: "$net_revenue"} 
        }
    }], ... );

Với truy vấn trên, một khách hàng sẽ xuất hiện nhiều hơn một lần nếu họ đặt hàng vào các tháng riêng biệt. Tôi không hiểu đó có phải là những gì bạn muốn hay không. Thay vào đó, nếu bạn muốn tổng giá trị cho TẤT CẢ các đơn đặt hàng từ khách hàng đó, nhưng cũng được sắp xếp theo lần ĐẦU TIÊN họ từng đặt hàng, hãy làm điều này thay thế:

db.orders.aggregate([
    { $sort: { order_date : 1 } }, //order by date so that $first is correct
    { $group : { 
            _id: { 
                customer_id: "$customer_id",                
            },
            month: { $first: {$month: "$order_date"} }
            revenue: {$sum: "$net_revenue"} 
        }
    }], ... );



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm thế nào để chiếu xem trường có tồn tại hay không

  2. Cơ sở dữ liệu danh sách MongoDB với tiền tố đã cho trong Go

  3. mongoose findOne với sắp xếp

  4. Hỗ trợ cho nhiều kiểu người dùng bằng Passport-local mongoose node.js

  5. Cách chiếu / lọc các khóa nhúng bằng cách áp dụng regex trên khóa