sql >> Databasteknik >  >> NoSQL >> MongoDB

Skaffa en samling och lägg till ett värde till svaret

Det finns två sätt du kan implementera en publiceringsfunktion:

  1. Genom att returnera en markör (eller en array av markörer)
  2. Genom att använda this.added(), this.changed() och this.removed().

Endast metod 2 tillåter modifiering av returnerade dokument.

Se Meteor-dokumentationen här . Men eftersom den medföljande exempelkoden kan se komplex ut, här är en annan:

// server: publish the rooms collection
Meteor.publish("rooms", function () {
  return Rooms.find({});
});

motsvarar:

// server: publish the rooms collection
Meteor.publish("rooms", function () {
  var self = this;
  var handle = Rooms.find({}).observeChanges({
    added:   function(id, fields) { self.added("rooms", id, fields); },
    changed: function(id, fields) { self.changed("rooms", id, fields); },
    removed: function(id)         { self.added("rooms", id); },
    }
  });
  self.ready();
  self.onStop(function () { handle.stop(); });
});

I det andra exemplet kan du ändra parametern 'field' innan du skickar den för publicering, så här:

added: function(id, fields) { 
    fields.newField = 12;
    self.added("rooms", id, fields); 
},

Källa:det här inlägget .



  1. Ny aggregeringsfunktion med Mongo 3.2-drivrutin, med Java

  2. Minska värdet i mongodb

  3. Hur man frågar BsonExtraElements i MongoDB via Linq

  4. mongodb multi tenacy spel med @Document