2017-01-30 3 views
0

私はモデル「抜粋」を持っており、特定のユーザが所有していない抜粋をすべて取り出したいとします。除外された抜粋のリストにはありません(例:リスト[ 2、3])knexとBookshelfでクエリを実行するときに、 '<>'と 'whereNotIn'の両方を使用するにはどうすればよいですか?

私は成功し、使用してユーザーが所有していないすべての抜粋を選択した

Excerpt 
    .query({ 
     whereNot: { owner_id : req.currentUser.id } 
    }) 
    .fetchAll() 
    .then((excerptResults) => { 
     res.status(200).json(excerptResults); 
    }); 

と私は(this stackoverflow postあたりなど)次のスニペットとの抜粋を除外するためにwhereNotInを使用しようとしました:

Excerpt 
    .query({ 
     whereNotIn: { id : [0, 1, 2, 3] } 
    }) 
    .fetchAll() 
    .then((excerptResults) => { 
     var tasks = []; 
     for(var i=0; i<excerptResults.models.length; i++) { 
     tasks.push(excerptResults.models[i].attributes); 
     } 
     res.status(200).json(tasks); 
    }); 

残念ながら、私は次のエラーメッセージ

を取得

私は本当にエラーメッセージを理解していません。誰にもアイデアはありますか?

+0

は 'Excerpt.whereNotIn( 'ID'、[0、1、2、3])私はエラー'未処理の拒絶はTypeErrorを得る ' –

+0

@MukeshSharmaをお試しください: _excerpts2.default.whereNotInは関数ではありません。 ' – tedigc

答えて

1

それはあなたのケースのために必要があります。

Excerpt.query(function(qb){ 
    qb.where('id','not in', [0,1,2,3]).andWhere('owner_id','=',req.currentUser.id) 
}) 
.fetchAll() 
.then(...); 
+0

ありがとう!これは私のために働いた。元の 'whereNot'クエリでそれをチェーン化すると、ユーザーが所有する抜粋を除外することはできますか?私はこの構文に慣れていません。 – tedigc

+0

更新された回答を確認してください。 –

関連する問題