MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB tổng hợp các trường mà không cần biết tất cả các trường trước đó

Bạn có thể thử tổng hợp bên dưới.

Chuyển đổi đối tượng thành mảng các cặp giá trị khóa, theo sau là $ unwind + $ group để nhóm theo từng khóa và cộng dồn số lượng. Bước cuối cùng để quay lại đối tượng giá trị khóa đã đặt tên.

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. Mongoose tham gia hai bộ sưu tập và nhận dữ liệu được tham chiếu trong hai thuộc tính

  2. Làm cách nào để xóa một cơ sở dữ liệu Mongo trống có cùng tên với một cơ sở dữ liệu đã nhập?

  3. Minimongo chưa hỗ trợ $ operator trong các phép chiếu

  4. Dịch vụ Mongodb sẽ không bắt đầu

  5. ý nghĩa của sudo chown -R `id -u` / data / db