2017-04-14 10 views
0

メテオールにはABの2つのコレクションがあります。 Aについては、私はAの文書の範囲を除外する出版物を持っています。ここでBの出版物を作成して、Bのすべての文書にB.lengthと一致するA.lengthの文書を公開したいと考えています。メテオネストされた出版物

これが表示されている例は見つかりませんでしたが、標準的な使用例でなければならないと感じています。どのようにこれは流星で行うことができますか?

答えて

0

使用serverTransform

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 
     } 
    }) 
}); 
1

これは '流星/ 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のように。

関連する問題