MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Chiến lược đăng ký / xuất bản Meteor cho các bộ sưu tập phía máy khách duy nhất

Trong một khu vực được chia sẻ:

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
}

Trên máy chủ:

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

Trên máy khách:

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();
  }
});

Điều quan trọng rút ra từ điều này là những gì xảy ra đằng sau hậu trường khi dữ liệu được truyền qua dây không rõ ràng. Meteor dường như để kết hợp các bản ghi được khớp trong các truy vấn khác nhau trên máy chủ và gửi dữ liệu này đến máy khách. Sau đó, khách hàng phải chạy lại cùng một truy vấn để tách biệt.

Ví dụ:giả sử bạn có 20 bản ghi trong bộ sưu tập phía máy chủ. Sau đó, bạn có hai lần xuất bản:bản đầu tiên phù hợp với 5 bản ghi, bản thứ hai phù hợp với 6 bản ghi, trong đó 2 bản giống nhau. Meteor sẽ gửi xuống 9 bản ghi. Trên máy khách, sau đó bạn chạy các truy vấn tên chính xác mà bạn đã thực hiện trên máy chủ và bạn sẽ có 5 và 6 từ tương ứng.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Phần tử kéo MongoDB từ mảng sâu hai cấp

  2. MongoDB Node findone làm thế nào để xử lý không có kết quả?

  3. Làm cách nào để truy cập MongoDB của Meteor từ một ứng dụng khách khác, trong khi Meteor đang chạy?

  4. MongoDB + trình điều khiển C # + mảng truy vấn các phần tử trong đó mỗi phần tử mảng chứa tài liệu con để truy vấn

  5. Làm thế nào để thực thi các lệnh mongo thông qua các tập lệnh shell?