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

Cara menggunakan agregasi MongoDB untuk operasi set tujuan umum (penyatuan, persimpangan, perbedaan)

Hanya Versi 2.6+:

Pada MongoDB versi 2.6, ini menjadi jauh lebih mudah. Sekarang Anda dapat melakukan hal berikut untuk menyelesaikan masalah ini:

Persatuan

db.colors.aggregate([
    {'$project': {  
                    union:{$setUnion:["$left","$right"]}
                 }
    }
]);

Persimpangan

db.colors.aggregate([
    {'$project': {  
                  int:{$setIntersection:["$left","$right"]}
                 }
    }
]);

Pelengkap Relatif

db.colors.aggregate([
    {'$project': {  
                    diff:{$setDifference:["$left","$right"]}
                 }
    }
]);

Perbedaan Simetris

db.colors.aggregate([
    {'$project': {  
                    diff:{$setUnion:[{$setDifference:["$left","$right"]}, {$setDifference:["$right","$left"]}]}
                 }
    }
]);

Catatan:Ada tiket meminta perbedaan simetris ditambahkan sebagai fitur inti daripada harus melakukan penyatuan dua set perbedaan.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Memperbarui elemen tertentu dalam array dengan MongoDB / Meteor

  2. cara membuat objek mongoDB di java

  3. MongoDB - ukuran file sangat besar dan terus bertambah

  4. Aplikasi mirip Twitter menggunakan MongoDB

  5. Solusi MongoDB untuk dokumen di atas ukuran 16mb?