【发布时间】:2020-12-19 22:37:04
【问题描述】:
我有一个异步函数,我首先在下面更新一个文档:
const saveToCurrentOrder= await Order.findByIdAndUpdate(
customerID,
{
orderStatus: "processed",
categoryID,
categoryName,
},
{ new: true }
);
更新返回的新对象是:
{
"customerID": "12345",
"orderStatus": "processed",
"categoryID": 234,
"categoryName":"Food"
}
现在我基本上想复制上面的文档,并说要更新新文档的 orderStatus 和 customerID,但保持剩余的设置数据,如 categoryName 和 categoryID 不变。我试图在创建新模式对象时使用扩展运算符来做到这一点,如下所示:
const saveToNextOrder = new Order({
...saveToCurrentOrder,
orderStatus: "pending",
customerID: "1236"
});
await saveToNextOrder.save()
这会创建一个新对象,但是新对象会丢失 categoryID 和 categoryName 并且只显示设置的值:
{
customerID: "1236",
orderStatus: "pending"
}
我真的很困惑为什么传播运算符没有按我期望的方式工作。
【问题讨论】: