1

我有一组包含以下信息的字符:

{
  { 
    name: "Character1",
    user_id: "user1"
  },
  {
    name: "Character2",
    user_id: "user2"
  }
}

现在我想在客户端接收如下集合:如果我是 user1,我会得到这个:

{
  { 
    name: "Character1",
    user_id: "user1"
  },
  {
    name: "Character2",
  }
}

基本上从不属于该用户的任何字符中剥离 user_id。

我所做的是: return Characters.find({},{fields: {user_id:0} } );

我如何让它为当前用户保留该字段?

4

1 回答 1

3

我会设置两个订阅,一个用于一个人的角色,另一个用于所有角色(删除您不想发布的字段)。结果将被合并。

每个DDP 规范的更多信息:

客户端为每个集合维护一组数据。每个订阅都没有自己的数据存储,而是重叠订阅导致服务器发送关于一个集合数据的事实联合。例如,如果订阅 A 说文档 x 有字段{foo: 1, bar: 2},而订阅 B 说文档x有字段{foo: 1, baz:3},那么客户端将被告知文档x有字段 {foo: 1, bar: 2, baz: 3}。如果来自不同订阅的字段值相互冲突,则服务器应发送可能的字段值之一。

于 2013-06-08T21:41:20.797 回答