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

Pengelompokan bersarang dengan MongoDB

Sesuatu seperti ini harus melakukannya;

db.example.aggregate( 
  { 
    $group: { 
      _id:   { age: "$age", gender: "$gender" }, 
      names: { $addToSet: "$name" } 
    } 
  }, 
  { 
    $group: {
      _id: { age: "$_id.age" }, 
      children: { $addToSet: { gender: "$_id.gender", names:"$names" } } 
    } 
  } 
)

...yang memberikan hasilnya;

{
  "_id" : {
    "age" : 1
  },
  "children" : [
    { "gender" : "m", "names" : [ "G", "A" ] },
    { "gender" : "f", "names" : [ "J", "D" ] }
  ]
}, 
...

Jika Anda ingin usia sebagai _id seperti pada contoh Anda, cukup ganti _id pengelompokan kedua oleh;

_id: "$_id.age", 



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Apakah Spring Data MongoDB mendukung fitur collation MongoDB 3.4?

  2. Meteor:Cara menulis fungsi publikasikan yang berisi nama pengguna

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

  4. Pemodelan data MongoDB:adakah kelemahan dalam menggunakan banyak basis data?

  5. MongoDB:apa perbedaan antara dokumen, catatan, dan atribut?