メテオールにはA
とB
の2つのコレクションがあります。 A
については、私はA
の文書の範囲を除外する出版物を持っています。ここでB
の出版物を作成して、B
のすべての文書にB.length
と一致するA.length
の文書を公開したいと考えています。メテオネストされた出版物
これが表示されている例は見つかりませんでしたが、標準的な使用例でなければならないと感じています。どのようにこれは流星で行うことができますか?
メテオールにはA
とB
の2つのコレクションがあります。 A
については、私はA
の文書の範囲を除外する出版物を持っています。ここでB
の出版物を作成して、B
のすべての文書にB.length
と一致するA.length
の文書を公開したいと考えています。メテオネストされた出版物
これが表示されている例は見つかりませんでしたが、標準的な使用例でなければならないと感じています。どのようにこれは流星で行うことができますか?
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
}
})
});
これは '流星/ reywood:パブリッシュ複合' からreywood:publish-composite
インポート{publishComposite}ための一般的なパターンです。 Bのいくつかのフィールドを有する合成シングルコレクションAとは反対に、後者はより多くのであるあなたが2つのコレクション、AとBで終わるクライアント上のよう
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
よりもかなり異なるパターンでありますSQL JOINのように。