MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB $sum i $avg dokumentów podrzędnych

Aby uzyskać sumę i średnia Channels.Value elementów dla każdego dokumentu w Twojej kolekcji będziesz musiał użyć przetwarzania agregacji mongodb. Ponadto, ponieważ Channels jest tablicą, której będziesz potrzebować użyć operatora $unwind, aby zdekonstruować tablicę.

Zakładając, że Twoja kolekcja nazywa się example , oto jak uzyskać zarówno sumę dokumentu, jak i średnią Channels.Value s:

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

Wynikiem danych Twojego posta będzie:

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

Jeśli masz więcej niż jeden dokument w swojej kolekcji, zobaczysz wiersz wyników dla każdego dokumentu zawierającego Channels tablica.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Przypadek indeksów haszowanych MongoDB

  2. Jak wyeksportować wyniki zapytania MongoDB do pliku CSV

  3. Jak zainicjować bazę danych mongo za pomocą docker-compose?

  4. Wykonywanie zapytań o elementy tablicy za pomocą Mongo

  5. Jak mogę stwierdzić, gdzie mongoDB przechowuje dane? (nie jest w domyślnym /data/db!)