試験の問題を解決しようとしているため、試験コードをそのまま投稿することはできません。そのため、理解できないコアコンセプトに対処するように単純化しました。基本的に、mongo コードが追いつくことができるように、ノードの非同期実行を遅くする方法がわかりません。コードは次のとおりです。
MongoClient.connect('mongodb://localhost:27017/somedb', function(err, db) {
if (err) throw err;
var orphans = [];
for (var i; i < 100000; i++) {
var query = { 'images' : i };
db.collection('albums').findOne(query, function(err, doc_album) {
if(err) throw err;
if (doc_album === null) {
orphans.push(i);
}
});
}
console.dir(orphans.length);
return db.close();
});
そのため、クエリ基準に一致しない画像の配列を作成しようとしています。ノードはコールバックが終了するのを待たないため、orphans.length の値は 0 になります。クエリ基準を満たさなかった配列内の画像の数をカウントする前に、コールバックの実行が終了するようにコードを変更するにはどうすればよいですか?
お時間をいただきありがとうございます。
バーラト