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

MongoDB agreguje pola bez wcześniejszej znajomości wszystkich pól

Możesz spróbować poniżej agregacji.

Przekształć obiekt w tablicę par klucz-wartość, a następnie $unwind+$group, aby pogrupować według każdego klucza i zsumować liczbę. Ostatni krok, aby wrócić do nazwanego obiektu wartości klucza.

db.colname.aggregate([
  {"$addFields":{"metrics":{"$objectToArray":"$metrics"}}},
  {"$unwind":"$metrics"},
  {"$group":{
    "_id":{"id":"$player_id","key":"$metrics.k"},
    "count":{"$sum":"$metrics.v"}
  }},
  {"$group":{
    "_id":"$_id.id",
    "metrics":{"$mergeObjects":{"$arrayToObject":[[["$_id.key","$count"]]]}}
  }}
])



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Metody agregacji mongoidów na osadzonych dokumentach?

  2. Podstawy automatyzacji baz danych MongoDB przy użyciu szefa kuchni

  3. Dlaczego moja MongoDB $lub zapytanie nie działa?

  4. Ustaw TTL nie działa w Mongodb c#

  5. Nie znaleziono klasy „MongoDB\Client”, zainstalowane rozszerzenie mongodb