【发布时间】:2015-02-12 07:25:06
【问题描述】:
我在 Meteor 中有两个集合,并试图加入它们。在 collections/collections.js 中定义
Producers = new Mongo.Collection('producers');
Projects = new Mongo.Collection('projects');
从概念上讲,一个生产者有 0 到多个项目。一个项目必须有一个生产者。因此,在 Mongo 的每个项目文档(行)中都有一个 ProducerID 字段。我在 Mongo 数据库中植入了数据。
当我用于查看项目的模板显示时,我希望它能够访问 Producer 的属性。
在 Iron Router 的配置中(在 /app.js 中),我有
Router.route('project', {
path: '/project/:name',
template: 'project',
waitOn: function() {
return Meteor.subscribe('ProjectInfo', this.params.name);
},
data: function() {
return Projects.find();
}
});
我在服务器上有两个发布(在 /server/publish.js 中):
Meteor.publish("ProjectInfo", function(projectName) {
return Projects.find( {name: projectName} );
});
Meteor.publish("ProducerInfo", function(producerid) {
return Producers.find( {_id: producerid});
});
问题 1: 如何加入?我绝对不想只将生产者数据放入每个项目中,因为当生产者数据发生更改时,更新数据库变得更加困难。
问题 2: 为什么 Iron Router 需要一个“data:”字段,而它在 waitOn 中已经有一个订阅?
data: function() {
return Projects.find();
}
提前致谢。
【问题讨论】:
标签: join meteor iron-router