如何从某些文档中排除某些字段的集合?

时间:2013-06-08 20:26:57

标签: mongodb meteor

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

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

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

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

基本上从任何不属于该用户的角色剥离user_id。

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

如何让它保留当前用户的字段?

1 个答案:

答案 0 :(得分:3)

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

根据DDP spec提供更多信息:

  

客户端为每个集合维护一组数据。每个订阅   没有自己的数据存储区,而是重叠订阅   使服务器发送关于一个集合的事实的联合   数据。例如,如果订阅A表示文档x包含字段{foo: 1, bar: 2}而订阅B表示文档x包含字段{foo: 1, baz:3},则会通知客户端文档x包含字段   {foo: 1, bar: 2, baz: 3}。如果来自不同订阅的字段值   相互冲突,服务器应该发送一个可能的   字段值。