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

Strategi publikasi/langganan meteor untuk koleksi sisi klien yang unik

Di area bersama:

function getSearchUsers(query) {
  var re = new RegExp(query, "i");
  return Users.find({name: {$regex: re}});
}

function getFriendUsers() {
  return Users.find({friend: true});    // or however you want this to work
}

Di server:

Meteor.publish("searchUsers", getSearchUsers);
Meteor.publish("friendUsers", getFriendUsers);

Di klien:

Template.search.onCreated(function () {
   var self = this;
   self.autorun(function () {
     self.subscribe("searchUsers", Session.get("searchQuery"));
   });
});

Template.friends.onCreated(function () {
  this.subscribe("friendUsers");
});

Template.search.helpers({
  searchResults: function () {
    return getSearchUsers(Session.get("searchQuery"));
  }
});

Template.friends.helpers({
  results: function () {
    return getFriendUsers();
  }
});

Pengambilan kunci dari ini adalah bahwa apa yang terjadi di balik layar ketika data ditransfer melalui kabel tidak jelas. Meteor tampaknya menggabungkan catatan yang cocok dengan berbagai kueri di server dan mengirimkannya ke klien. Kemudian terserah klien untuk menjalankan kueri yang sama lagi untuk memisahkannya.

Misalnya, Anda memiliki 20 catatan dalam koleksi sisi server. Anda kemudian memiliki dua publikasi:yang pertama cocok dengan 5 catatan, yang kedua cocok dengan 6, yang 2 di antaranya sama. Meteor akan mengirimkan 9 catatan. Pada klien, Anda kemudian menjalankan kueri yang sama persis dengan yang Anda lakukan di server dan Anda akan mendapatkan masing-masing 5 dan 6 record.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Hashing kata sandi luwak

  2. Tambahkan Validator baru ke Koleksi yang Ada

  3. kueri mongodb tanpa nama bidang

  4. Mongo $in kinerja operator

  5. java.lang.NoClassDefFoundError saat menggunakan driver MongoDB