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

permintaan meteor untuk semua dokumen dengan bidang unik

Ada pengaturan umum yang dapat Anda gunakan untuk mengakses objek koleksi driver yang mendasarinya dan karenanya .aggregate() tanpa menginstal plugin lain.

Proses dasarnya seperti ini:

FooAges = new Meteor.Collection("fooAges");

Meteor.publish("fooAgeQuery", function(args) {
    var sub = this;

    var db = MongoInternals.defaultRemoteCollectionDriver().mongo.db;

    var pipeline = [
        { "$group": {
            "_id": "$age", 
            "name": { "$max": "$name" }
        }}
    ];

    db.collection("foo").aggregate(        
        pipeline,
        // Need to wrap the callback so it gets called in a Fiber.
        Meteor.bindEnvironment(
            function(err, result) {
                // Add each of the results to the subscription.
                _.each(result, function(e) {
                    // Generate a random disposable id for aggregated documents
                    sub.added("fooAges", Random.id(), {
                        "age": e._id,
                        "name": e.name
                    });
                });
                sub.ready();
            },
            function(error) {
                Meteor._debug( "Error doing aggregation: " + error);
            }
        )
    );

});

Jadi, Anda menentukan koleksi untuk output agregasi dan dalam rutinitas seperti ini, Anda kemudian mempublikasikan layanan yang juga akan Anda langgani di klien Anda.

Di dalam ini, agregasi dijalankan dan diisi ke dalam koleksi lain (secara logis karena tidak benar-benar menulis apa pun). Jadi Anda kemudian menggunakan koleksi itu pada klien dengan definisi yang sama dan semua hasil gabungan baru saja dikembalikan.

Saya sebenarnya memiliki aplikasi contoh kerja lengkap dari proses serupa dalam pertanyaan ini , serta penggunaan agregat peretasan meteor paket pada pertanyaan ini di sini juga, jika Anda membutuhkan referensi lebih lanjut.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Repositori dan pewarisan mongodb data pegas

  2. Apakah saya harus menjadi admin untuk membuat pengguna baru di MongoDB?

  3. Bagaimana Membandingkan MongoDB dengan YCSB?

  4. Cara Mengoptimalkan Kinerja MongoDB

  5. Mengkonfigurasi MongoDB di Windows