【发布时间】:2021-08-11 23:39:30
【问题描述】:
我一直在尝试更新 uisng nodejs 和 mongoose 的订单状态。但是我在更新状态时遇到了问题。
我一直在尝试从 ORDER 文档(表格)访问购物车。我想将购物车内的状态从“已打包”更改为“已转移”。我整天都在尝试,但找不到解决方案。请帮帮我。如何使用 nodejs 选择购物车并更改 mongoose 中的状态?
订购
{
"_id": {
"$oid": "60a9a8b2bc65933bb4c22a3b"
},
"cart": [{
"_id": {
"$oid": "60a8bcafe7815c2950de4b28"
},
"userId": "60a3ad7fb51de12a5472de37",
"count": "1",
"status": "packed",
"__v": 0
}],
"userId": "60a3ad7fb51de12a5472de37",
"fName": "jay sree",
"street": "5th cross hindurous",
}
型号
const mongoose = require('mongoose')
const schema = mongoose.Schema
const orderSchema = new schema(
{
userId: {
type: String,
required: true
},
cart: [{
type: Object
}],
fName: {
type: String,
required: true
},
street: {
type: String,
},
},
{
timestamps: true,
}
);
module.exports = mongoose.model("Order", orderSchema)
控制器
exports.postUpdateStatus = (req, res, next) => {
let status = req.params.status //shifted
let productId = mongoose.Types.ObjectId(req.params.productid )//60a8bcafe7815c2950de4b28
let orderId = mongoose.Types.ObjectId(req.params.orderid )//60a9a8b2bc65933bb4c22a3b
Order.find({id: orderId})
.select({ cart: {$elemMatch: {id: productId}}})
.then(product => {
res.jsonp(product)
})
.catch(err => {
console.log(err)
})
}
【问题讨论】: