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

Grup mongodb berdasarkan bidang dbref

Dulu ada bagian dalam manual yang secara eksplisit menyatakan bahwa DBRef tidak didukung di bawah kerangka kerja agregasi, bersama dengan berbagai jenis BSON lainnya.

Bagian lama terbaca seperti yang ditunjukkan dalam arsip grup google ini pesan:

Mungkin masih ada di suatu tempat tetapi sepertinya saya tidak dapat menemukannya sekarang :)

Juga seperti yang disinggung dalam utas pesan itu adalah bahwa selain ini tidak didukung dalam kerangka kerja agregasi, maka opsi Anda yang lain (dan satu-satunya opsi nyata untuk agregasi) adalah menggunakan mapReduce metode sebagai gantinya. Sebagai contoh shell:

db.Products.mapReduce(
    function() {
        emit( this.model.$id, { "actives": [this.isActive] } );
    },
    function(key,values) {
        var result = { "actives": [] };
        values.forEach(function(value) {
            value.actives.forEach(function(active) {
                result.actives.push( active );
            });
        });
    },
    { "out": { "inline": 1 } }
)

Itu tidak terlihat bagus karena { "_id": "", "value": { } } yang sewenang-wenang struktur hasil mapReduce, tetapi memungkinkan jenis agregasi yang Anda cari.

Ada juga referensi untuk Masalah JIRA ini:SERVER-14466 , tapi saya tidak akan bertahan untuk banyak gerakan di depan itu.

Jadi Anda dapat menggunakan mapReduce tetapi disarankan untuk menjauh dari penggunaan DBRef dan menentukan bentuk alternatif "referensi manual" baik menyematkan informasi "koleksi" dan "database" atau mengandalkan definisi eksternal dari hal-hal seperti itu dalam skema aplikasi Anda, tergantung pada kebutuhan Anda. Selama Anda mengikuti aturan yang sama di sana, Anda dapat menggunakan kerangka kerja agregasi untuk apa pun dengan nama properti yang valid.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Apa itu Profil? dan Web dan Pekerja

  2. Memperbarui koleksi dari database yang berbeda

  3. MongoDB $rand

  4. Mongoosastic - { [Kesalahan:Tidak ada koneksi yang hidup] pesan:'Tidak ada koneksi yang hidup' }

  5. 5 Cara Memilih Baris dengan Nilai Minimum untuk Grup mereka di SQL