我有一个需要订阅两次同一集合的情况。服务器端代码中我的两种发布方法如下:
Meteor.publish("selected_full_mycollection", function (important_id_list) {
check(important_id_list, Match.Any); // should do better check
// this will return the full doc, including a very long array it contains
return MyCollection.find({
important_id: {$in: important_id_list}
});
});
Meteor.publish("all_brief_mycollection", function() {
// this will return all documents, but only the id and first item in the array
return MyCollection.find({}, {fields: {
important_id: 1,
very_long_array: {$slice: 1}
}});
});
我的问题是,我订阅文档后在客户端看不到完整版本。我认为这是因为发布简要版本的方法覆盖了完整版本。我不想在不需要时浪费客户端内存来处理长数组,但我需要在需要时使用它们。简要版本在启动时被订阅,当用户访问模板以获得更多洞见时,完整版本被订阅。如何正确管理此情况?