如果我订阅了
Meteor.publish("mypublish", function (status) {
var foundOnServer = MyCollection.find({"status": status}, {fields: {_id: 1, status: 1, "name": 1}});
return foundOnServer;
});
并且我在表格中显示这些记录,然后我想让用户点击其中一个以显示记录的完整细节,现在我想显示更多之前没有发布到客户端,比如地址,城市,州等...我如何编写代码以便我可以获取新字段并将其放入本地minimongo集合中,考虑到记录已经在客户端。执行查找只返回客户端中已有的文档,没有我想要的额外字段。
编辑:我不知道DDP限制,因为一旦您订阅了嵌套结构中的字段,您就无法再从嵌套结构的该级别添加更多字段。 https://github.com/meteor/meteor/issues/998
答案 0 :(得分:0)
为相应的子集编写另一个发布函数,并返回更多/所有字段。例如:
Meteor.publish('singlePost', function(postId) {
check(postId, String);
return Posts.find(postId);
});
当您点击帖子时,您可以订阅singlePost
,这将发送该帖子的所有字段。关键的见解是文档将合并到客户端。
因此,如果客户端已将{_id: 'x', message: 'hello'}
置于minimongo中,并且您稍后发布{_id: 'x', color: 'blue'}
,则客户端将在其数据库中拥有{_id: 'x', message: 'hello', color: 'blue'}
。