Node.js monk と MongoDB を使用して、テーブル結合を模倣したいと考えています。
- コレクション A を検索する
- 結果 X ごとに、コレクション B で検索を実行し、X を更新します。
- 結果の更新されたリストを返す
monk のデータベース コマンドの非同期性が問題を引き起こしています。これは私の初期コードです。find
への 2 番目の呼び出しがすぐに promise を返し、結果xs
が更新される前に応答で送信されるため、機能しません。
var db = require('monk')('localhost/mydb');
db.get('collection').find({}, function(e,xs) {
xs.forEach(function(x){
coll_b.find({a_id:x._id}, function(e,bs) {
a['bs'] = bs;
});
});
res.json({'results':as});
});
ここでプロミスチェーンを使用する必要があるように感じますが、その方法がわかりません。どんな助けでも大歓迎です。