多分私は何かを見落としていますが、私はかなりシンプルな設定をしています。私がしようとしているのは、自分のデータベースにあるすべての「App」ドキュメントを見つけて、各アプリケーションごとにそのアプリケーションに関連付けられたユーザードキュメントの数を取得することです。私は、コンソールログを見てみるとネストされたときにマングースカウントが機能しない?
AppObject.find({}).exec((err, apps) => {
if (err) {
} else if (!apps) {
} else {
apps.forEach((app, index) => {
(function (app) {
console.log('app ID ' + app._id);
User.find({ appId: app._id }).count((countErr, count) => {
console.log('COUNT ERR ' + JSON.stringify(countErr));
console.log('Number of docs: ', count);
// do more things with the App and the count
});
}(app));
});
}
});
、私は何を見ていると、
console.log('app ID ' + app._id);
行が正しくアプリのIDを出力しますが、その後
console.log('Number of docs: ', count);
は0として表示されます。
私はforEachループの外でクエリを実行して(そして、手動でアプリケーションIDを提供する)正しくdocumeの数を返しますnts。
私は紛失しています。何か助けていただければ幸いです。
ありがとうございます!
私は即時の関数の中でデータベースへの2番目の呼び出しを持っていますが?私はその電話が自己完結型であると思ったでしょう – Zyph
私の最初の答えは間違っています。 app._idが期待しているタイプとは異なるタイプである可能性がありますか? Mongooseは、実際に表現しているフィールドを反復処理するときにJSONではないドキュメント参照を返すことがあります。私は変数にクエリを割り当て、クエリが同じであることを確認します。 – d3l33t