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

MongoDB $sum a $avg dílčích dokumentů

Chcete-li získat součet a průměrné z Channels.Value prvky pro každý dokument ve vaší sbírce budete muset použít agregační zpracování mongodb. Dále od Channels je pole, k dekonstrukci pole budete muset použít operátor $unwind.

Za předpokladu, že se vaše sbírka nazývá example , zde je návod, jak můžete získat součet dokumentu i průměr Channels.Value s:

db.example.aggregate( [ 
    { 
        "$unwind" : "$Channels"
    }, 
    {
        "$group" : {
            "_id" : "$_id",
            "documentSum" : { "$sum" : "$Channels.Value" },
            "documentAvg" : { "$avg" : "$Channels.Value" }
         }
    }
] )

Výstup z dat vašeho příspěvku by byl:

{ 
    "_id" : SomeObjectIdValue,
    "documentSum" : 76,
    "documentAvg" : 25.333333333333332
}

Pokud máte ve sbírce více než jeden dokument, uvidíte řádek výsledků pro každý dokument obsahující Channels pole.



  1. předat výsledky jinému příkazu v redis

  2. MongoDB s redis

  3. Při kódování objektu se nepoužívá kodek MongoDB BSON

  4. $unset na více polích v mongodb