MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Holen Sie sich eine Sammlung und fügen Sie der Antwort einen Mehrwert hinzu

Es gibt zwei Möglichkeiten, wie Sie eine Veröffentlichungsfunktion implementieren können:

  1. Durch Rückgabe eines Cursors (oder eines Arrays von Cursorn)
  2. Durch die Verwendung von this.added(), this.changed() und this.removed().

Nur Methode 2 erlaubt es, zurückgegebene Dokumente zu ändern.

Bitte lesen Sie die Meteor-Dokumentation hier . Da der bereitgestellte Beispielcode jedoch komplex aussehen könnte, hier ein weiterer:

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

entspricht:

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

Im zweiten Beispiel können Sie den „field“-Parameter ändern, bevor Sie ihn zur Veröffentlichung senden, wie folgt:

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

Quelle:dieser Beitrag .