【发布时间】:2021-05-25 09:26:30
【问题描述】:
我有一个代码,在查找和填充之后,我将根据 createdAt 添加一个新键('order_date')。
const summaryGetOrders = async (start_date, end_date) => {
let orders = await Order.find({ createdAt: { $gte: new Date(start_date), $lt: new Date(end_date) } }).populate(
'orderdetails_id'
);
await Promise.all(
orders.map(async (i, index) => {
i.order_date = i.createdAt;
// orders[index] = i
// orders[index].order_date = i.createdAt
})
);
console.log(orders);
return orders;
};
我已经检查了 console.log(i.createdAt),它确实在 i 中有日期元素,但是当我执行 console.log(orders) 时,它并没有返回我 order_date。
是异步等待功能造成的吗?我这样做是因为我的快速样板通过我模型上的 toJSON 函数自动删除 createdAt 键。我不想修改,因为我的代码是定制的,不能处理 createdAt。
【问题讨论】:
-
i.order_date = i.createdAt;只是一个任务。为什么要使用 Promise? -
因为据我所知,map 是一个异步函数,我想等待它。所以我承诺了
标签: javascript mongoose