使用Meteor动态创建新字段和项目数据



假设我有一个mongo文档,其格式如下:

{
  _id: "someid",
  profiles: {
    admin: {
      metadata: {
        addedAt: ISODate(),
        addedBy: 'someidornull'
      },
      recent: {
        transactions: []
      }
    },
    player: null,
    anonymous: null
  }
}

因此,为了简单起见,假设我想在profile中取一个不为空的对象,并将其投影到一个名为"profile"的新字段中,以便在我的客户端使用。

{
  _id: "someid",
  profile: {
    metadata: {
      addedAt: ISODate(),
      addedBy: 'someidornull'
    },
    recent: {
      transactions: []
    }
  }
}

我知道这可能是通过聚合完成的,但是,我找不到任何在客户端和服务器上都可以进行聚合的meteor。

虽然我知道使用下划线很容易做到这一点,但我觉得从mongo中去掉下划线会增加复杂性。Mongo解决方案优先。

使用meteor,是否可以将一个字段投影到一个新字段中以供发布?

使用问题中的示例,您可以使用transform选项,该选项允许将行为附加到通过pub/sub通信返回的对象上,以投影新字段。像这样:

Items.find({ /* selector */ }, {
    transform: function(item){
        item.profile = item.profiles.admin;
        return item;
    }
}); 

您还可以查看这个不错的meteor-collection-hooks包。

相关内容

最新更新