4

我想从服务器 Meteor.publish 添加并返回一个计算字段,该字段实际上并未保留在 MongoDB 中。这可能吗?像我格式化一些降价的地方:

  Meteor.publish('recentEdits', function(pageId) {
    var edits, formattedContent;
    edits = WikiEdits.find({pageId: pageId}, {sort: {ts: -1},
      limit: RECENT_EDIT_LIMIT});
    edits.forEach(function(edit) {
      formattedContent = marked(edit.content);
      edit.formattedContent = formattedContent;
    });
    return edits;
  });

对客户来说,该字段看起来应该像formattedContent其他字段一样,但它实际上不在 MongoDB 中。这可能吗?如果可以,最好的方法是什么?即使我应该存储 formattedContent,我仍然想知道如何执行此操作。

我尝试使用仅在客户端上运行的transform选项Meteor.Collection,但我希望这从服务器上发生。

4

1 回答 1

1

您可以使用的转换选项find

唯一的问题是它也在客户端上执行。如果你能忍受它,这是一个解决方案。

另一种选择可能是在客户端上添加一个非托管集合并从Meteor 方法获取内容

本地非托管集合不会存储在您可以调用的 MongoDB 中Meteor.methodautorun并且observe将在本地集合上工作。

于 2013-06-16T20:35:22.290 回答