2017-05-12 20 views
0

私は2つのテーブルuserとMatchesを持っています。 Matchesテーブルの列のfindAll値をクエリしています。次に、一致テーブルから照会された値と等しいidを持たないすべての行とユーザーテーブルを照会します。Sequelizeクエリ:列の検索方法 "where:"列の値が配列の任意の値と等しくない

db.Matches.findAll({ 
    where: { WLID: { $ne: currentUser } }, 

    attributes: ['GLID'] 


}).then(function(data) { 
    // console.log(data); 
    // console.log(data); 

    var GLIDsToPass = []; 

    data.forEach((dataItem) => { 

     GLIDsToPass.push(dataItem); 

     console.log(dataItem.get({ 
      plain: true 
     })); 
    }); 

}); 

db.user.findAll({ 

    where: { 
     id: { 
      $ne: req.user.id 
     } 
    }, 
    where: { 
     id: { 
      $ne: "WHAT DO I PUT HERE in order to check if every value in GLIDsToPass array is not equal..." 
     } 
    },... 

私はMatchesテーブルの値を配列に格納しています。どうすればいいですか:

where: { 
    id: { 
     $ne: "any value in GLIDsToPass array" 
    } 
}, 

答えて

0

$notLike演算子は使用できますか?おそらく、

$notLike: { $any: ['cat', 'hat']}

は、事業者の下でここを見てみましょう!動作します - あなたは正しいです

where: { 
    id: { 
     $notLike: { $any: GLIDs } 
    } 
}, 
+0

http://docs.sequelizejs.com/manual/tutorial/querying.html

ユアーズようになります。私はちょうど別の問題に遭遇した!私の変数、配列...は次のようになります:[{GLID: '1'}、{GLID: '2'}、{GLID: '3'}] どうすればこのようにすることができますか? '、' 2 '、' 3 '] – Mike

+0

Wicked!エルム、あなたのようなことをすることができますか? 'const値= GLIDs.map(オブジェクト=> object.GLID)'? @Mike – Harkat

+0

私はそれをどこに置くことをお勧めしますか?私はその構文が何をしているのか分からないと思う@Harkat – Mike

関連する問題