MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Obter uma coleção e adicionar um valor à resposta


Existem 2 maneiras de implementar uma função de publicação:
  1. Retornando um cursor (ou uma matriz de cursores)
  2. Usando this.added(), this.changed() e this.removed().

Apenas o método 2 permite modificar os documentos devolvidos.

Consulte a documentação do Meteor aqui . No entanto, como o código de exemplo fornecido pode parecer complexo, aqui está outro:
// server: publish the rooms collection
Meteor.publish("rooms", function () {
  return Rooms.find({});
});

é equivalente a:
// 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(); });
});

No segundo exemplo, você pode modificar o parâmetro 'field' antes de enviá-lo para publicação, assim:
added: function(id, fields) { 
    fields.newField = 12;
    self.added("rooms", id, fields); 
},

Fonte:esta postagem .