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

Đăng ký Bộ sưu tập Meteor.Users

Nếu bạn muốn thiết lập này hoạt động, bạn cần thực hiện như sau:

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

});

Không ở phía máy khách, bạn cần xác định bộ sưu tập chỉ phía máy khách:

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

và đăng ký tập dữ liệu tương ứng:

Meteor.subscribe('thisNameDoesNotMatter');

Điều này sẽ hoạt động ngay bây giờ. Hãy cho tôi biết nếu bạn cho rằng lời giải thích này chưa đủ rõ ràng.

CHỈNH SỬA

Tại đây, self.added/changed/removed các phương thức hoạt động ít nhiều như một trình điều phối sự kiện. Nói một cách ngắn gọn, họ đưa ra hướng dẫn cho mọi khách hàng đã gọi đến

Meteor.subscribe('thisNameDoesNotMatter');

về các bản cập nhật sẽ được áp dụng trên bộ sưu tập của khách hàng có tên thisNameMatters giả sử rằng bộ sưu tập này tồn tại. Tên - được truyền làm tham số đầu tiên - có thể được chọn gần như tùy ý, nhưng nếu không có bộ sưu tập tương ứng ở phía máy khách, tất cả các bản cập nhật sẽ bị bỏ qua. Lưu ý rằng bộ sưu tập này có thể chỉ ở phía máy khách, vì vậy nó không nhất thiết phải tương ứng với bộ sưu tập "thực" trong cơ sở dữ liệu của bạn.

Trả lại con trỏ từ publish của bạn nó chỉ là một phím tắt cho đoạn mã trên, với sự khác biệt duy nhất là tên của một bộ sưu tập thực tế được sử dụng thay vì theNameMatters của chúng tôi . Cơ chế này thực sự cho phép bạn tạo bao nhiêu "bản sao" của tập dữ liệu tùy thích. Trong một số tình huống, điều này có thể khá hữu ích. Vấn đề duy nhất là các "bộ sưu tập" này sẽ ở chế độ chỉ đọc (điều này hoàn toàn có ý nghĩa với BTW) vì nếu chúng không được xác định trên máy chủ, các phương thức `insert / update / remove 'tương ứng sẽ không tồn tại.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Người dùng root MongoDB

  2. Cách tốt nhất để xử lý kết nối toàn cầu của Mongodb trong NodeJs là gì

  3. Mọi thứ bạn cần biết về ứng dụng khách MongoDB

  4. Toán tử tổng hợp MongoDB $ sortByCount

  5. Giao dịch trong MongoDB