2016-06-17 9 views
0

にインデックスで結果を見つける:新しいItemが作成されるたびに、それはID注文流星は、私が緩く、このように作成された流星プロジェクトの2つのコレクション、している配列

ItemContainer.insert({ 
    title: title, 
    items: [], 
}); 

Items.insert({ 
    title: title, 
}); 

のだItemContaineritems配列に追加されます。

私はまた、このようなヘルパーを持っている:

Template.body.helpers() { 
    items() { 
    const instance = Template.instance(); 
    const containerId = instance.state.get("currentContainer"); 
    const theseItems = ItemContainer.find({ _id: containerId}).items; 
    return Items.find({ _id: { $in: items } }); 
    } 
} 

問題は私が項目の配列にそのインデックスで戻ってるアイテムをソートしたいということです。だから私は、そのIDですitems[0]で最初に表示されます項目、その上items[1]が続くとをブラウザ内の項目のリストを生成するとき。残念ながら、私はMongoのドキュメントで簡単な解決策を見つけることはできません。

私はアイテムの配列を反復処理して、それを返すことによって、オブジェクトを構築するように、それを行うにはいくつかの方法を考えることができますが、私は簡単な方法があります想像しなければなりません。項目数が理論、数千または数万人に、非常に大きく成長することも可能です。

誰もが配列インデックスでソートする簡単な方法を知っていますか?

+0

は、うーん...私は解決策を見つけたかもしれません確信はないけど。後でそれを試すことはできません。 – terrafirma9

答えて

0

あなたはItemContainerを通じて見つけたときに昇順でアイテムをソートしようとすることができます。したがって、アイテムは正しい順序で返されます。 ....... https://docs.mongodb.com/manual/tutorial/sort-results-with-indexes/:

const theseItems = ItemContainer.find({ _id: containerId}).sort({"items.0": 1}).items; 
+0

オクラホマ) 'items'アレイが' Items.find(に渡す前にソートされている場合に '、結果も同様に順に表示されますか?それは素晴らしいだろう!私は後で試してみるよ。 – terrafirma9

関連する問題