おそらく、明らかな何かが欠けているか、ドキュメントに欠けているものがあります。検索しても同様の質問が見つかりませんでした。それを投稿します。
これらの両方
return Items.find({},{sort: {time: -1}, limit: 10});
また
return Items.find({},{sort: {time: -1}).limit(10);
結果meteor cannot observe queries with skip or limit
おそらく、明らかな何かが欠けているか、ドキュメントに欠けているものがあります。検索しても同様の質問が見つかりませんでした。それを投稿します。
これらの両方
return Items.find({},{sort: {time: -1}, limit: 10});
また
return Items.find({},{sort: {time: -1}).limit(10);
結果meteor cannot observe queries with skip or limit
更新: これはもはや問題です。Meteor 0.5.3 から、skip
andlimit
オプションを使用してクエリを監視できます。
残念ながら、これは事実です。現在、mimimongo パッケージは、またはオプションobserve
を使用したカーソルでの呼び出しをサポートしていません。これには正当な理由はありません。実装されていないだけです。skip
limit
テンプレート ヘルパー内でこのクエリを呼び出す場合は、簡単な回避策があります。
Template.name.items = function () {
// fetch array of all the items
var items = Items.find({}, {sort: {time: -1}}).fetch();
// return only the first 10 items to the template
return items.slice(0,10);
};
回避策の欠点は効率です。ヘルパーがカーソルを返す (Items.find
を呼び出さずに の値を返すだけの場合) 場合fetch
、テンプレート システムは、1 つの項目だけが変更された場合や新しい項目が挿入された場合に、テンプレート全体を再計算しないほど十分にスマートです。
一方、ヘルパーを呼び出すと、クエリ結果全体fetch
への依存関係が登録されるため、クエリ内のオブジェクトが変更されるたびに、テンプレート全体が再計算されます。
他に違いはありません。テンプレートは同じものを画面に配置し、再描画する必要がある場合はフォーム要素の内容を保持します。