Dav*_*ave 13 javascript meteor
我想使用transform来从集合中创建一个"虚拟字段".但是,我添加的新字段(在转换函数中)正在向返回的文档添加相当多的数据.
如果转换发生在客户端内,这很好.如果在服务器端完成,则会出现带宽问题.
所以我想知道转换是在服务器上还是在客户端上完成,还是取决于我如何查找/获取文档?
Aks*_*hat 26
更新:可以在服务器上进行转换.
您可以像这样对客户端进行转换:
return YourCollection.find({}, {transform: function (doc) {
   doc.test = true;
   return true;
}});
Meteor忽略transform发布的查询(从内部Meteor.publish).客户端看到文档就好像转换不存在一样.
如果您想在服务器上使用转换,您可以这样做:
YourCollection = new Mongo.Collection("collection_name"); 
Meteor.publish("yourRecordSet", function() {
  //Transform function
  var transform = function(doc) {
    doc.date = new Date();
    return doc;
  }
  var self = this;
  var observer = YourCollection.find().observe({
      added: function (document) {
      self.added('collection_name', document._id, transform(document));
    },
    changed: function (newDocument, oldDocument) {
      self.changed('collection_name', newDocument._id, transform(newDocument));
    },
    removed: function (oldDocument) {
      self.removed('collection_name', oldDocument._id);
    }
  });
  self.onStop(function () {
    observer.stop();
  });
  self.ready();
});
| 归档时间: | 
 | 
| 查看次数: | 5820 次 | 
| 最近记录: |