我是Mongoose / Mongo和node.js的新手,所以我怀疑这只是我身边的一个误解,当我试图将我的物体竖立时,我遇到了一些问题。
这里有什么我尝试在我的代码中使用upsert:
app.post("/api/orders/:id", async (req, res) => {
const { id, name, email, phone, data, item } = req.body;
const existingVisitor = await Visitor.findOne({ email: email.trim() });
if(existingVisitor){
delete Visitor._id;
}
const OrderSchema = await new Order({
orderDate: new Date(),
item: item
});
const visitor = await new Visitor(
{ email: email.trim() },
{
name: name,
email: email.trim(),
phone: phone,
data: data,
createDate: new Date(),
_user: req.params.id,
order: [OrderSchema]
},
{ upsert: true, setDefaultsOnInsert: true }
);
try {
await visitor.update();
console.log("Sucess!");
} catch (err) {
res.status(422).send(err);
}
当我尝试在Postman中测试它时,出现错误后出现错误结果:将更新应用到文档{_id:ObjectId('59f1896ccabc4f12bc17e5c6'),...}后,(不可变)发现字段'_id'已被更改为_id:null
我该怎么做才能解决这个错误?