MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB $sum и $avg от поддокументи

За да получите сума исредно на Channels.Value елементи за всеки документ във вашата колекция, ще трябва да използвате обработката на агрегиране на mongodb. Освен това, тъй като Channels е масив, който ще трябва да използвате оператора $unwind, за да деконструирате масива.

Ако приемем, че вашата колекция се нарича example , ето как можете да получите както сумата на документа, така и средната стойност на Channels.Value s:

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

Резултатът от данните на публикацията ви ще бъде:

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

Ако имате повече от един документ във вашата колекция, ще видите ред с резултати за всеки документ, съдържащ Channels масив.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB Съпоставете ли масив с $type?

  2. множество копия на Mongo DB на един и същ сървър

  3. 5 начина да получите минути от среща в MongoDB

  4. Spring data и mongodb - просто връщане назад с пружина в @Transactional

  5. Каква е разликата между запазване и вмъкване в Mongo DB?