【发布时间】:2016-12-12 11:15:22
【问题描述】:
我有两个集合,即 Orders 和 Employee。我首先使用客户 ID 从某个客户的 Orders 集合中查找所有订单,然后需要使用结果中的一个字段从 Employee 集合中查找数据。我面临的问题是我从 Orders 得到的结果是一个数组,所以我需要使用 for 循环遍历它,然后在 for 循环中找到 Employee 数据。订单的第一部分有效,但第二部分并不总是我一个 0 数组值。
async.waterfall([
function(callback) {
Order.find({ user_id: req.body.id}, {sort: { id: -1 }}, function(err, order) {
callback(null, order);
});
},
function(order, callback) {
for(var i = 0; i < order.length; i++) {
Employee.find({id: order[i].id}, 'field', function(err, employee) {
if (employee.length > 0) {
order[i].field = employee[i].field;
}
order[i].id = order[i].otherid;
regs.push(order[i]);
});
callback(null, regs);
}
}], function (err, result) {
res.send(result);
});
但是结果是这样的:[0],这不是预期的结果。我在这里做错了什么? 还有其他解决办法吗??
【问题讨论】:
标签: javascript node.js mongodb asynchronous mongoose