sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB $summa och $avg av underdokument

För att få summan och genomsnittlig av Channels.Value element för varje dokument i din samling måste du använda mongodbs Aggregation-bearbetning. Vidare, eftersom Channels är en array som du behöver använda operatorn $unwind för att dekonstruera arrayen.

Förutsatt att din samling heter example , så här kan du få både dokumentsumman och genomsnittet för Channels.Value s:

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

Utdata från ditt inläggs data skulle vara:

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

Om du har mer än ett dokument i din samling kommer du att se en resultatrad för varje dokument som innehåller en Channels array.



  1. MongoDB BSON-guide

  2. Kontrollera om ett fält innehåller en sträng

  3. Redis-distributionskonfiguration - masterslavreplikering

  4. Konfigurera Redis på Webfaction