我有一组包含以下信息的字符:
{
{
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}});
如何让它保留当前用户的字段?
答案 0 :(得分:3)
我会设置两个订阅,一个用于一个人的角色,另一个用于所有角色(删除你不想发布的字段)。结果将合并。
根据DDP spec提供更多信息:
客户端为每个集合维护一组数据。每个订阅 没有自己的数据存储区,而是重叠订阅 使服务器发送关于一个集合的事实的联合 数据。例如,如果订阅A表示文档x包含字段
{foo: 1, bar: 2}
而订阅B表示文档x
包含字段{foo: 1, baz:3}
,则会通知客户端文档x
包含字段{foo: 1, bar: 2, baz: 3}
。如果来自不同订阅的字段值 相互冲突,服务器应该发送一个可能的 字段值。