特定のカーソルと別のカーソルからのドキュメントのすべての反復との比較を返すテンプレート ヘルパーを使用しています。「内側」の値は、「都市」コレクション内に格納されます。
「Places」コレクション内の各ドキュメントに一意の「inside」値を格納すると、この問題が解決することはわかっていますが、各「City」内の 1 つの場所にしか「inside」することはできません。これはパフォーマンスの問題になります。
ヘルパー:
Template.listPlaces.helpers({
places: function () {
return Places.find({});
},
insidePlace: function () {
return City.findOne({_id: this._id}).inside === places._id;
}
]);
テンプレート:
<ul>
{{#each places}}
{{#if insidePlace}}Active{{else}}Inactive{{/if}}
{{/each}}
</ul>
City.inside が更新されるたびにセッション変数を「内部」値で更新するカーソルオブザーバーを実行することで解決できることはわかっていますが、より良い解決策があるかどうか知りたいです。