【发布时间】:2021-05-31 20:04:05
【问题描述】:
我正在开发一个网站,我们在一个 JS 数组中获取每天的订单,如下所示:
let todayOrders = [
{
order_name: "apple",
order_count: 2
},
{
order_name: "orange",
order_count: 3
},
{
order_name: "apple",
order_count: 1
}
];
我需要将每个订单计数添加到跟踪每个订单的总订单计数文档中。所以我在其中使用了一个 foreach 循环和一个 updateOne 方法,如下所示:
todayOrders.forEach(function(item, index){
Product.updateOne(
{
product_name: item.order_name
},
{
$inc: {product_count: item1.order_count}
},
);
});
问题是这段代码只有在todayOrders 不包含任何重复的order_name 时才能正常工作,在这种情况下它不会应用所有更改。我认为这与 Mongoose 的 async 行为有关。
【问题讨论】:
-
item1 应该是 item。
-
跟踪“总”订单需要 $inc 而不是 $set
-
是的。我对那个不好。
标签: javascript node.js mongodb asynchronous mongoose