私は2つのコレクションを使用するためにリーダーボードの例を修正:どのようにデータをMeteorクライアントのキャッシュに同期させるかを管理できますか?
Players = new Meteor.Collection("players");
Tasks = new Meteor.Collection("tasks");
プレイヤーのコレクションは一例で定義された6つの文書を持っています。
> db.players.count()
6
タスクコレクションには48,000個のドキュメントがあります。
> db.tasks.count()
48000
ブラウザを開くと、ノードは100%CPUにジャンプし、クライアントはタスクレコードのいずれも見ることができません。
Players.find().count()
6
Tasks.find().count()
0
私はクエリ基準を定義しようとしましたが、これはサーバー上でのみ動作し、クライアントでは役に立ちません。
私は48,000のドキュメントが同期するにはあまりにも多いと推測しています。これはNodeが100%CPUでペグを引き起こし、クライアントはhttp://i.imgur.com/zPcHO.pngのようなエラーを投げます。
すべての同期を防止し、特定のドキュメントのみをコレクションから取得するにはどうすればよいですか?
パート:
$流星はあなたが必要な制御を提供している、マニュアルを使用する公開と機能をサブスクライブすることを学ぶ、その後autopublish
を削除:パッケージを削除し、この動作をオフにするにはautopublish機能を無効にするように見えます。オートパブリッシュは、少数のドキュメントを使って単純な例を「うまくいく」ようにしますが、それ以上のデータではうまく機能しません。プロジェクトディレクトリで、 'meteor remove autopublish'を使用します。次に、独自のパブリッシュおよびサブスクライブ関数を記述します。 –