Я пытаюсь обновить несколько значений из документа mongoDB.
Я использую ExpressJS и Пн goose.
Я считаю, что нужно обновить несколько значений , Я должен использовать updateMany ().
Тем не менее, он продолжает выдавать мне сообщение об ошибке, подобное этому:
'Ошибка приведения к ObjectId для значения "status" в пути "_id" для модель "заказ" '
Чтобы дать вам подробности, вот мой код ниже:
Заказ модели
const mongoose = require('mongoose');
const OrderSchema = mongoose.Schema({
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'users',
required: true
},
menus: {
type: mongoose.Schema.Types.ObjectId,
ref: 'menus',
required: true
},
date: {
type: Date,
default: Date.now
},
status: {
type: String,
default: 'pending'
}
});
module.exports = mongoose.model('order', OrderSchema);
Также вот мой ExpressJS код:
const express = require('express');
const router = express.Router();
const Order = require('../models/Order');
const User = require('../models/User');
// @route PUT api/orders/status
// @desc Update All Order status
// @access Private
router.put('/status', auth, async (req, res) => {
const { status } = req.body;
const orderFields = {};
if (status) orderFields.status = status;
try {
const orders = await Order.updateMany(
{ user: req.user.id },
{ $set: orderFields }
);
if (!orders || orders.length === 0)
return res.status(404).json({ msg: 'Order not found!' });
res.json(orders);
} catch (err) {
console.error(err);
res.status(500).json({ error: err.message });
}
});
Ребята, вы понимаете, что я пропустил?
Я проверил API mon goose и погуглил много источников, но я не смог найти свою ошибку здесь.