sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB $sum og $avg af underdokumenter

For at få sum og gennemsnitlig af Channels.Value elementer for hvert dokument i din samling, skal du bruge mongodbs Aggregation-behandling. Yderligere, da Channels er et array, du skal bruge operatoren $unwind til at dekonstruere arrayet.

Forudsat at din samling hedder example , her er, hvordan du kan få både dokumentsummen og gennemsnittet af Channels.Value s:

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

Outputtet fra dit indlægs data ville være:

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

Hvis du har mere end ét dokument i din samling, vil du se en resultatrække for hvert dokument, der indeholder en Channels array.



  1. Er det sikkert at slette journalfilen for mongodb?

  2. Grundlæggende om implementering af et MongoDB-replikasæt og -skår ved hjælp af dukke

  3. Forbindelse til Redis-klyngen mislykkedes

  4. Påvirker navnelængde ydeevnen i Redis?