sql >> Database >  >> NoSQL >> MongoDB

Verzamel een verzameling en voeg een waarde toe aan het antwoord

Er zijn 2 manieren waarop u een publicatiefunctie kunt implementeren:

  1. Door een cursor (of een array van cursors) terug te geven
  2. Door this.added(), this.changed() en this.removed() te gebruiken.

Alleen methode 2 staat toe om geretourneerde documenten te wijzigen.

Raadpleeg de Meteor-documentatie hier . Omdat de verstrekte voorbeeldcode er echter ingewikkeld uit kan zien, is hier nog een:

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

is gelijk aan:

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

In het tweede voorbeeld kunt u de parameter 'field' wijzigen voordat u deze voor publicatie verzendt, zoals dit:

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

Bron:dit bericht .



  1. Mongodb sorteer binnenarray

  2. Mongoose/mongoDB-query voegt zich bij ... maar ik kom uit een sql-achtergrond

  3. Query in een MongoDB Map Reduce-functie

  4. Ingesloten commentaarpagina's in mongodb