sql >> Databáze >  >> NoSQL >> MongoDB

seskupení MongoDB podle měsíce a souhrnné tržby pro graf odchodu/výnosů

Pokud tomu dobře rozumím, chcete tržby podle zákazníka a podle měsíce.

Operátor $group v souhrnném dotazu je přesně to, co zde hledáte.

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

S výše uvedeným dotazem se zákazník objeví více než jednou, pokud objednává v jednotlivých měsících. Nechápal jsem, jestli je to to, co jsi chtěl nebo ne. Pokud místo toho chcete celkovou hodnotu VŠECH objednávek od daného zákazníka, ale seřazenou také podle toho, kdy PRVNÍ objednávku kdy objednali, udělejte místo toho toto:

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. Jak zkopírovat kolekci z jedné databáze do druhé v MongoDB

  2. MongoDB $stdDevSamp

  3. v nodejs, jak zastavit smyčku FOR, dokud se nevrátí volání mongodb

  4. MongoDb Jak seskupit podle měsíce a roku z řetězce