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

MongoDB обобщава полета, без да познава всички полета предварително

Можете да опитате агрегирането по-долу.

Преобразувайте обекта в масив от двойки стойности на ключове, последвани от $unwind+$group за групиране по всеки ключ и натрупване на броя. Последна стъпка за връщане към наименуван обект с ключова стойност.

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. Пропуснете и ограничете за пагиниране за агрегат Mongo

  2. Експортирайте колекция MongoDB в JSON файл

  3. Mongoid не е под въпрос

  4. Заявка към mongodb за връщане на документи, създадени днес

  5. Mongo отваря твърде много връзки