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

Meteor:xuất bản 2 phép chiếu khác nhau của các phần tử mảng

Tôi đã xem xét các cách tiếp cận khác nhau. Vấn đề có thể được giải quyết trong từng trường hợp cụ thể bằng cách cẩn thận chọn các trường và cân nhắc thứ tự đăng ký, nhưng các giải pháp này là mỏng manh và dựa trên các điều kiện tùy ý không được lập thành văn bản.

Giải pháp chung, thực sự duy nhất là một tập hợp ảo . Trường hợp đơn giản nhất chỉ đơn giản là xuất bản con trỏ dưới tên bộ sưu tập phía máy khách, khác. Ví dụ:

function publishVirtual(sub, name, cursor) {
  var observer = cursor.observeChanges({
    added  : function(id, fields) { sub.added(name, id, fields) },
    changed: function(id, fields) { sub.changed(name, id, fields) },
    removed: function(id)         { sub.remove(name, id) }
  })

  sub.onStop(function() {
    observer.stop() // important. Otherwise, it keeps running forever
  })
}

Và sau đó, trong ấn phẩm của bạn, thay vì trả về cursor :

var cursor = Users.find()
publishVirtual(this, 'virtualUsers', cursor)
this.ready()



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Xây dựng chỉ mục lớn MongoDB rất chậm

  2. cách so sánh hai trường trong một tài liệu trong tổng hợp đường ống (mongoDB)

  3. Meteor mongodb tùy chỉnh trong quá trình phát triển

  4. Làm thế nào để ngăn chặn _t và _v khi chèn vào MongoDB?

  5. không thể chuyển đổi từ 'MongoDB.Driver.IMongoCollection <>' thành 'System.Collections.Generic.IEnumerable <>'