nodejs/mongoDb:在一个请求中更新多个字段



如何更新多个orderStatus而不是一个?

默认情况下,request.body.type是字符串,并且只包含一种类型;

并且当类型的isCompleted变为真时,我甚至希望之前的枚举索引isCompleted变为真

这可能吗?还是我需要在前端修改它?

这是代码

const orderSchema = new mongoose.Schema(
{
user: {
type: mongoose.Schema.Types.ObjectId,
ref: "User",
required: true,
},
orderStatus: [
{
type: {
type: String,
enum: ["ordered", "packed", "shipped", "delivered"],
default: "ordered",
},
date: {
type: Date,
},
isCompleted: {
type: Boolean,
default: false,
},
},
],
}
exports.updateOrder = (req, res) => {
Order.updateOne(
{ _id: req.body.orderId, "orderStatus.type": req.body.type },
{
$set: {
"orderStatus.$": [
{ type: req.body.type, date: new Date(), isCompleted: true },
],
},
}
).exec((error, order) => {

Hey您可以使用updateMany((操作

db.collection.updateMany(
<query>,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)

相关内容

  • 没有找到相关文章

最新更新