MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Obtenir une collection et ajouter une valeur à la réponse

Il existe 2 façons d'implémenter une fonction de publication :

  1. En retournant un curseur (ou un tableau de curseurs)
  2. En utilisant this.added(), this.changed() et this.removed().

Seule la méthode 2 permet de modifier les documents retournés.

Veuillez vous référer à la documentation de Meteor ici . Cependant, comme l'exemple de code fourni peut sembler complexe, en voici un autre :

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

est équivalent à :

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

Dans le deuxième exemple, vous pouvez modifier le paramètre 'champ' avant de l'envoyer pour publication, comme ceci :

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

Source :ce message .