MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bidang agregat MongoDB tanpa mengetahui semua bidang sebelumnya

Anda dapat mencoba agregasi di bawah ini.

Ubah objek menjadi larik pasangan nilai kunci diikuti oleh $unwind+$group ke grup menurut setiap kunci dan kumpulkan hitungannya. Langkah terakhir untuk kembali ke objek nilai kunci bernama.

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. Sisipan Massal MongoDB Abaikan Duplikat

  2. Bagaimana saya bisa membujuk Spring Data untuk menunjukkan kepada saya rencana kueri mongo (alias cursor.explain())

  3. Eksekusi Kueri gagal saat menjalankan perintah Mongo melalui skrip bash

  4. Bug mongoid mengembalikan dokumen pertama saat memanggil terakhir?

  5. MongoDB $graphLookup dapatkan anak-anak di semua level - hasil bersarang