我在Meteor中有两个集合A
和B
。对于A
我有一个出版物,我在A
过滤掉了一系列文件。现在,我想为B
创建一个发布,我在B
中发布所有与B.length
匹配的A.length
字段的文档。
我无法找到显示此示例的任何示例,但我觉得它必须是标准用例。怎么能在Meteor中完成?
答案 0 :(得分:1)
从'meteor / reywood:publish-composite'中导入{publishComposite};
publishComposite('parentChild', {
const query = ... // your filter
find() {
return A.find(query, { sort: { score: -1 }, limit: 10 });
},
children: [
{
find(a) {
return B.find({length: a.length });
}
}
]
});
这是一个与serverTransform
完全不同的模式,因为客户端最终会得到两个集合A和B,而不是合成的单个集合A,它有一些B的字段。后者更多就像一个SQL JOIN。
答案 1 :(得分:0)
Meteor.publishTransformed('pub', function() {
const filter = {};
return A.find(filter)
.serverTransform({
'B': function(doc) {
return B.find({
length: doc.length
}); //this will feed directly into miniMongo as if it was a seperate publication
}
})
});