MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

kelompokkan pengumpulan MongoDB berdasarkan bulan dan pendapatan agregat untuk grafik churn/pendapatan

Jika saya mengerti benar Anda ingin pendapatan oleh pelanggan dan bulan.

Operator $group dalam kueri agregat persis seperti yang Anda cari di sini.

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

Dengan query di atas, pelanggan akan muncul lebih dari sekali jika mereka memesan pada bulan yang berbeda. Saya tidak mengerti apakah itu yang Anda inginkan atau tidak. Jika Anda menginginkan nilai total untuk SEMUA pesanan dari pelanggan itu, tetapi juga diurutkan berdasarkan waktu PERTAMA kali mereka memesan, lakukan ini:

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. Bagaimana saya bisa menghapus peringatan penghentian ini di MongoDB dan mengapa itu terjadi?

  2. Memulai Dengan Basis Data Non-relasional Menggunakan Mongodb

  3. MongoJS tidak mengembalikan data saat mencari dengan ekspresi reguler

  4. Bagaimana cara mengimpor Mongodb ObjectId dari file CSV menggunakan mongoimport?

  5. Bagaimana cara multi pembaruan array bersarang di MondoDB?