我有一个流星集合
在channels = new Meteor.Collection('channels');
文件夹的 collections
并在侧边栏导航中使用了2个发布功能channelsNames
来显示可用频道,当我转到频道设置时,我还使用channelSettings
来获取此特定频道的设置。通过铁路由器
//Publish specfic channel settings
Meteor.publish("channelSettings", function(channel){
check(channel, String);
return channels.find({userId: this.userId, 'channels.name': channel}, {fields: {'channels.$': 1}} );
});
//Publish all connected channels names
Meteor.publish("channelsNames", function() {
return channels.find({userId: this.userId, 'channels.name': {$exists: true}}, {fields: {'channels.name': 1}});
});
问题在于客户端您无法订阅这两个客户端只有当我在控制台中channels.findOne
时才会在客户端集合上看到第一个订阅我可以验证我不是如果首先订阅channelsname
,请参见channelsSettings
,反之亦然
Meteor.subscribe('channelSettings', 'ebay');
Meteor.subscribe('channelsNames');
该集合看起来像这样
{
_id: 2,
userId: 123,
channels: [
{name: "channel1", inventorySync: false, inventoryMaxqty: 0, inventoryMinQty: 0},
{name: "channel2", inventorySync: false, inventoryMaxqty: 0, inventoryMinQty: 0}
]
}
这是预期的行为吗?我认为meteor应该将两个数据合并到一个集合中。我怎么能这样做?