2016-06-20 22 views
0

私は2つのアソシエーションを持つモデルを持っています。両方のアソシエーションを持つモデルを返したいのですが、そのモデルの基準が満たされている場合のみです。Sequelize - where句を持つ複数のネストされたモデル

 models.Users.findAll({ 
      include: [ 
       { 
        model: models.Context, 
        where: { id: req.session.contextObject.id } 
       }, 
       {  
        model: models.Role 
       } 
      ] 
     }).then(function(fullUsers){... 

だから私は彼らのコンテキスト役割で、すべてのユーザーを返すようにしたいが、私は持っている値と一致したのみどこコンテキスト。

複数の関連モデルを返すことはできますが、モデルの1つにはwhere句を使用できますか?

これは、コンテキストモデルのみを含む場合には問題なく動作します。あなたはコンテキストのIDでフィルタリングする場合は、あなたがユーザのモデルにコンテキストの属性参照を使用することができ

+0

これはほとんど動作します... \t \t \t models.Users.findAll( { \t \t \t \tは、以下が挙げられる:[{すべての:真}]、 \t \t \t \tここで:{ 'Contexts.id':req.session.contextObject.id} \t \t \t})。その後、(機能(fullUsers){...しかし、その代わりという をWHERE 'それはする必要がありますUsers'.'Contexts.id' WHERE' Contexts'.'id' – Jamie

答えて

1

:FYI

models.Users.findAll({ 
     where : { ContextId : req.session.contextObject.id } 
    , include: [ 
     { 
      model: models.Context   
     }, 
     {  
      model: models.Role 
     } 
    ] 
}).then(function(fullUsers){... 
+0

ああはあなたに感謝!私はちょうどそれがすなわち、代わりにRAWクエリで作業を持っている、これを試してみましょう:\t \t \t \tが含まれます:[{すべて:真}]、 \t \t \tを\t場所:[」 'Contexts'.'id '= '+ req.session.contextObject.id] ...でも、これを試してみます – Jamie

関連する問題