2016-06-25 24 views
1

追加のパラメータをMongoose findOneクエリに渡したいとします。追加のパラメータをMongooseクエリに渡す

は、ここに私の擬似コードです:

for (var i = 0; i < 5; i++) { 
    SomeCollection.findOne({name: 'xxx' + i}, function (err, document) { 
     if (document) { 
      console.log('aaa' + i + document.somefield); 
     } 
    }); 
} 

それは私がfindOneメソッドにそれを渡したい別のスレッドで実行されているので、あなたが、私はfindOneコールバックでi変数値を使用しています見ることができるように。

どうすればいいですか?

+0

代わりに 'if(document){}'の中でそれを使用してください。 – kaxi1993

+0

これは単なる擬似コードでした。それをもっと明白にするように変更しました。 –

答えて

3

限り、あなたは上記のNode.js 4.xまたはを使用しているとして、あなたは効果的にあなたforループでlet代わりのvarを使用することによって、反復ごとに新しいスコープを作成することができます。

あなたが使用する理由
for (let i = 0; i < 5; i++) { 
    SomeCollection.findOne({name: 'xxx' + i}, function (err, document) { 
     if (document) { 
      // i will have the same value from the time of the findOne call 
      console.log('aaa' + i + document.somefield); 
     } 
    }); 
} 
関連する問題