猫鼬在循环中获取多个对象

时间:2018-03-24 14:30:12

标签: javascript mongodb mongodb-query

我试图使用mongoose从MongoDB获取多个对象。我有两个名为user和order的主表。

用户有一个名为订单历史的数组,订单历史包含订单。

当我将订单推送到订单数组时,订单成功推送。但是当我想从循环外部获取命令时,由于循环内部发生了异步操作,我的数组什么都没有。

CODE

userModel.findOne({'username': username }, function (err, user) {
        if(user){
            var orders = [] 

            for(var i=0;i<user.orderHistory.length;i++){
                var orderId = user.orderHistory[i].orderId

                var order = orderModel.findOne({'id': orderId}).exec()

                order.then(function(order){
                    orders.push(order)
                })              
            }

            orders.then(function(order){
                console.log(order)
            })
        }
    })

如何在循环之外获得订单?感谢

1 个答案:

答案 0 :(得分:2)

改为使用异步功能,每个订单都使用db.returns <- zoo(db.kurs3, order.by = as.Date("1925-01-02") + 0:1456)

await