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

Berlangganan Koleksi Meteor.Users

Jika Anda ingin penyiapan ini berfungsi, Anda perlu melakukan hal berikut:

Meteor.publish('thisNameDoesNotMatter', function () {
  var self = this;
  var handle = Meteor.users.find({}, {
    fields: {emails: 1, profile: 1}
  }).observeChanges({
    added: function (id, fields) {
      self.added('thisNameMatters', id, fields);
    },
    changed: function (id, fields) {
      self.changed('thisNameMatters', id, fields);
    },
    removed: function (id) {
      self.removed('thisNameMatters', id);
    }
  });

  self.ready();

  self.onStop(function () {
    handle.stop();
  });

});

Tidak di sisi klien, Anda perlu mendefinisikan koleksi sisi klien saja:

directories = new Meteor.Collection('thisNameMatters');

dan berlangganan kumpulan data yang sesuai:

Meteor.subscribe('thisNameDoesNotMatter');

Ini harus bekerja sekarang. Beri tahu saya jika menurut Anda penjelasan ini tidak cukup jelas.

EDIT

Di sini, self.added/changed/removed metode bertindak lebih atau kurang sebagai operator acara. Secara singkat mereka memberikan instruksi kepada setiap klien yang menelepon

Meteor.subscribe('thisNameDoesNotMatter');

tentang pembaruan yang harus diterapkan pada koleksi klien bernama thisNameMatters dengan asumsi bahwa koleksi ini ada. Nama - diteruskan sebagai parameter pertama - dapat dipilih hampir secara sewenang-wenang, tetapi jika tidak ada koleksi yang sesuai di sisi klien, semua pembaruan akan diabaikan. Perhatikan bahwa koleksi ini dapat menjadi sisi klien saja, sehingga tidak harus sesuai dengan koleksi "nyata" di database Anda.

Mengembalikan kursor dari publish . Anda metode ini hanya jalan pintas untuk kode di atas, dengan satu-satunya perbedaan bahwa nama koleksi yang sebenarnya digunakan sebagai ganti theNameMatters kami . Mekanisme ini sebenarnya memungkinkan Anda membuat "mirror" set data sebanyak yang Anda inginkan. Dalam beberapa situasi ini mungkin cukup berguna. Satu-satunya masalah adalah bahwa "koleksi" ini akan menjadi hanya-baca (yang benar-benar masuk akal BTW) karena jika tidak ditentukan di server, metode `insert/update/remove' yang sesuai tidak ada.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sisipkan Nodejs Mongo ke dalam subdokumen - nama bidang dinamis

  2. C# driver untuk MongoDb:bagaimana cara menggunakan limit+count?

  3. mongodb/mongoose findMany - temukan semua dokumen dengan ID yang terdaftar dalam array

  4. Mongoose - menggunakan Populate pada array ObjectId

  5. Menggunakan generator Rekaman Aktif setelah instalasi Mongoid?