我如何添加温度。 字段发布到Meteor发布

有没有办法在发布函数内的服务器上添加一个临时额外字段? 我似乎无法观察或转换工作。

我有两个订阅相同的集合“清单”。 有些时候,我想订阅某些列表,以便他们可用于聊天室列表......但问题是他们显示在我的“列表”模板中。 独特的部分是在服务器上的性能(大型阵列)。

理想情况下,我希望我可以添加一个额外字段,例如'forChat:true',以便我可以在列表模板中检查该列表,并只列出没有'forChat'字段的列表。

目前我通过发送每个列表中的'喜欢'和'不喜欢'数组来避开它,因此列表模板可以检查用户的ID是否在其中。 然而,由于长度〜=(用户/ 2),这不会随着时间(以及在移动设备上)而很好地扩展。

// ideal-ish pseudo code if we could return arrays:

Meteor.publish('chats', function(id) {
    lists = Listings.find(...).fetch();

    return lists.map(function(list){
        return list.forChat = true;
    });
});

这甚至有可能吗? 这种哈克,但我想我可以将该字段添加到每个列表中,并在其他出版物上省略它。

以下接受的答案的工作代码:

Meteor.publish('listingsForChats', function(id) {
    var cursor = Listings.find(...);

    // insert a temp `forChats:true` field to filter in listings template
    cursor.forEach(function(doc) {
      doc.forChats = true;
      this.added('listings', doc._id, doc);
    }, this);

    this.ready(); 
});

是的,那是可能的。 在这里看到我的答案:如何'转换'通过Meteor.publish返回的数据?

它基本归结于meteor文档中发布的扩展示例:http://docs.meteor.com/#meteor_publish。

链接地址: http://www.djcxy.com/p/18561.html

上一篇: How can I add temp. fields to a Meteor publish

下一篇: Android Volley: gzip response