我想更新我的 PATCH 请求中的产品。我在邮递员中收到了“确认”:错误的请求。
我收到状态代码 200
这是我的模型和补丁请求:
const mongoose = require("mongoose");
const productSchema = mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
name: String,
price: Number
});
module.exports = mongoose.model("product", productSchema);
router.patch("/:productId", (request, response, next) => {
const id = request.params.productId;
const updateOps = {};
for (const ops of request.body) {
updateOps[ops.propName] = ops.value;
}
Product.updateOne({ _id: id }, { $push: { updateOps } })
.exec()
.then((result) => {
console.log(result);
response.status(200).json(result);
})
.catch((err) => {
console.log(err);
response.status(500).json({
error: err,
});
});
});
我期待我的产品更新
您的问题中缺乏信息,但从我看来,我的猜测是您使用了错误的运算符,因为
$push
仅用于将值推送到数组字段,我在中没有看到你的模型。如果您想更新(即更改字符串和数字字段的数据),您应该使用 $set
运算符。
https://www.mongodb.com/docs/manual/reference/operator/update/push/
https://www.mongodb.com/docs/manual/reference/operator/update/set/