mongoose:如何遍历包含对象引用的数组(_id)

时间:2015-09-29 14:18:25

标签: javascript node.js mongodb asynchronous mongoose

我有一个meanjs项目,我从服务器上的用户那里得到一些输入,请求体具有以下结构:

{
   transaction: { 
       heading: '',
       items: [Object]    
   },
   something: {},
   somethingAgain: {}
}

items数组的结构如下 -

[ { ref: '5607c6536e67edb44a6a8186',
    name: '',
    quantity: 0,
    discount: 0,
    cost: 180 } ]

其中ref是我的项目模型中项目的_id值。 因此,基本上我想要做的是循环遍历项目数组并填充每个ref的属性并相应地为每个项目计算cost属性。 我不能使用简单的for循环,因为它甚至会在第一次异步调用mongodb之前执行,以找到项目完成。 那么,如何处理呢?请建议。

所以,在问题中添加更多信息 - 我的服务器端控制器代码接收请求如下 -

exports.create = function (req, res) {
    console.log(req.body.transaction.items);
    Sale.create(req.body, function (err, sale) {
        if (err) {
            return handleError(res, err);
        }
        return res.json(201, sale);
    });
};

并且项目的日志输出如上所示。所以我要做的就是迭代items数组,找到ref与Items集合匹配的项目。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,我会建议使用Kris Kowal's q。它是一个可以与节点一起使用的小型promise库。 Angular的$ q基于它。这是一个例子:

B2=25/(A2-0.5)