sql >> Database >  >> NoSQL >> MongoDB

MongoDB $sum en $avg van subdocumenten

Om de som . te krijgen en gemiddeld van de Channels.Value elementen voor elk document in uw verzameling moet u de aggregatieverwerking van mongodb gebruiken. Verder, sinds Channels is een array die je nodig hebt om de $unwind-operator te gebruiken om de array te deconstrueren.

Ervan uitgaande dat uw verzameling example . wordt genoemd , hier leest u hoe u zowel de documentsom als het gemiddelde van de Channels.Value kunt krijgen s:

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

De uitvoer van de gegevens van je bericht zou zijn:

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

Als u meer dan één document in uw verzameling heeft, ziet u een resultaatrij voor elk document met een Channels array.



  1. Procedure:gebruikersauthenticatie en autorisatie inschakelen in Apache HBase

  2. is er een mangoest verbindingsfout callback

  3. Een Docker redis-container instellen met ssl

  4. mangoest schema maken