0

出版社:

Meteor.publish('market', function(limit) {
  let self = this;

  Markets.find({}, {
    limit: limit
  }).observeChanges({
    added: function(id, market){
      self.added("market", id, market);

      let country = findCountry(market);
      self.added("countries", country._id, country);
    }
  });

  return self.ready();

});

上記の発行者は正常に動作します。私の問題は、上記の発行者の発行marketと関連するcountriesカーソルです。マーケット カーソルには制限があります。今、私は市場カーソルを制限付きで発行したいと思っており、制限なしで実行observeChangesするcountry必要があります。

だから私は次のように書いています

Meteor.publish('market', function() {
  let self = this;

  let markets = Markets.find({}, {
    limit: limit
  });

  Markets.find().observeChanges({
    added: function(id, market) {

      let country = findCountry(market);
      self.added("countries", country._id, country);
    }
  });

  return [self.ready(), markets]; // How to publish multiple cursors??

});

複数のカーソルを公開するには?

4

1 に答える 1

0

reywood:publish-compositパッケージをうまく利用しているようです。新しいレコードが追加、更新、または削除されたときに、関連ドキュメントのすべてのロジックを処理します。

findCountry関数のロジックが何であるかはわかりませんが、次のようなものになると思います。

Meteor.publishComposite('market', {
    find: function() {
        return Markets.find({}, {limit: limit});
    },
    children: [
        {
            find: function(market) {
                return Countries.find({countryCode: market.countryCode});
            }
        }
    ]
});
于 2016-01-08T06:47:31.867 に答える