sql >> Database teknologi >  >> NoSQL >> MongoDB

Byg en reaktiv publikation med yderligere felter i hvert dokument

Det er relativt nemt at holde felter private, selvom de er en del af databaseforespørgslen. Det sidste argument til self.added er objektet, der sendes til klienten, så du kan fjerne/ændre/slette felter, du sender til klienten.

Her er en modificeret version af din violin. Dette bør gøre, hvad du beder om. (For at være ærlig er jeg ikke sikker på, hvorfor du havde noget lænket efter observeChanges funktion i din violin, så måske jeg misforstår dig, men ser på resten af ​​dit spørgsmål, burde det være det. Beklager, hvis jeg tog fejl.)

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. Hvordan stopper man mongodb-server på Windows?

  2. Spring data mongodb - Muligheden 'markør' er påkrævet

  3. MongoDB-serveren kan stadig tilgås uden legitimationsoplysninger

  4. Hvorfor tilføjes et _id med ObjectID, når du bruger MongoDB's $push for at tilføje nyt objekt til et array?