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

Xây dựng một ấn phẩm phản ứng với các trường bổ sung trong mỗi tài liệu

Tương đối dễ dàng giữ các trường ở chế độ riêng tư ngay cả khi chúng là một phần của truy vấn cơ sở dữ liệu. Đối số cuối cùng cho self.added là đối tượng đang được chuyển cho máy khách, vì vậy bạn có thể tách / sửa đổi / xóa các trường bạn đang gửi cho máy khách.

Đây là một phiên bản sửa đổi của fiddle của bạn. Điều này sẽ làm những gì bạn đang yêu cầu. (Thành thật mà nói, tôi không chắc tại sao bạn lại có bất kỳ thứ gì bị xích sau observeChanges chức năng trong fiddle của bạn, vì vậy có thể tôi đang hiểu nhầm bạn, nhưng nhìn vào phần còn lại của câu hỏi của bạn thì đây là nó. Xin lỗi nếu tôi hiểu sai.)

var self = this;

// Modify the document we are sending to the client.
function filter(doc) {
  var length = doc.item.length;

  // White list the fields you want to publish.
  var docToPublish = _.pick(doc, [
      'someOtherField'
  ]);

  // Add your custom fields.
  docToPublish.itemLength = length;

  return docToPublish;                        
}

var handle = myCollection.find({}, {fields: {item:1, someOtherField:1}})
            // Use observe since it gives us the the old and new document when something is changing. 
            // If this becomes a performance issue then consider using observeChanges, 
            // but its usually a lot simpler to use observe in cases like this.
            .observe({
                added: function(doc) {
                    self.added("myCollection", doc._id, filter(doc));
                },
                changed: function(newDocument, oldDocument)
                    // When the item count is changing, send update to client.
                    if (newDocument.item.length !== oldDocument.item.length)
                        self.changed("myCollection", newDocument._id, filter(newDocument));
                },
                removed: function(doc) {
                    self.removed("myCollection", doc._id);                    
                });

self.ready();

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. nhận đối tượng mongodb _id sau khi upert bằng php

  2. Xuất Bộ sưu tập MongoDB sang Tệp CSV

  3. MongoDB $ substrCP

  4. Khái niệm cơ bản về tự động hóa cơ sở dữ liệu MongoDB bằng Chef

  5. Làm cách nào để triển khai các quyền cấp trường cho MongoDB?