我尽力简化了这个问题。
Transaction.find({budget: foundBudget._id}, function(err, foundTrans) {
if (err) console.log(err);
else {
uniqueUsers = foundTrans
.map(user => user.who)
.filter((value, index, self) => self.indexOf(value) === index)
console.log(uniqueUsers);
uniqueUsers.forEach(function(user, i) {
console.log("foundBudget._id " + foundBudget.id);
console.log("user " + user);
Transaction.find({budget: foundBudget._id, who: user}, 'amount')
.exec(function(err, amountsInTrans) {
if (err) console.log(err);
else console.log("Here");
});
});
console.log("Here2");
}
});
它不会进入第二个Transaction.find()查询的回调函数。
console.log(uniqueUsers);
记录[ 'Aras' ]
,仅仅是因为这是唯一的用户。
console.log("foundBudget._id " + foundBudget.id);
和console.log("user " + user);
日志
foundBudget._id 5f77b8971fd44e456c8145d7
user Aras
和相关的架构是这样的,
const transactionSchema = new mongoose.Schema({
who: String,
amount: Number,
info: String,
budget: String
})
因此,查询应该可以工作,并且应该进入回调函数,但是我没有从console.log("Here");
获取日志,我只是得到了Here2
。
有什么想法吗?