2016-08-04 16 views
0

てsequelizeネストクエリ/ループは、私はこのように見ているオブジェクトのリストを取得する最初のクエリを持っています。すでにCategoriesMarkersモデル間の関連付けを定義した場合jsの結果

Categories.findAll({where: {id: { $in: ids}}}); 

答えて

0

、: はどのように私は、実際のカテゴリーの詳細情報を取得するには、次のクエリを実行できるようにIDSという名前の配列に結果セットのIDプロパティを保存することができます関連カテゴリのマーカーを返します

Markers.findAll({where: { id: markerId }, include: [ Categories ]}) 

+0

私は100%を確認していないどのように私の現在のテーブル構造のセットアップの関連付けをする:あなただけの次の操作を行うことができます 'マーカー{ID、名前} カテゴリ{ID、名前} markers_categories {ID、idmarker、idcategory} 'しかし、私は、その間に次の解決策を見つけた: '({MarkerCategories.findAllを返します。 {idmarker:data.dataValues.id}})。次に(function(data){ var ids = new Array(); data.map(item => ids.push(item.dataValues.idcategory)); 戻るCategories.findAll({:{id:{$ in:ids}}}); }); ' – Chris

+0

あなたのソリューションはうまくいきますが、間違った方法です.2つのクエリを実行します。コードのサイズ。正しい方法は関連付けを定義し、上記のコードとしてincludeを使用することです。あなたのアソシエーションは、このような 'Markers.belongsToMany(Categories、{MarkerCategories、foreignKey:idmarker、otherKey:idcategory}))'のようになります。詳細については、ドキュメントhttp://docs.sequelizejs.com/en/latest/docs/associations/#belongs-to-many-associationsを参照してください。 –

関連する問題