📅  最后修改于: 2023-12-03 15:32:57.740000             🧑  作者: Mango
在使用Mongoose时,有时需要同时更新多个文档字段。针对这种情况,可以使用Mongoose的update()方法进行批量更新。在这种情况下,可以使用req.body来更新多个文档字段。
使用以下代码,定义一个Express路由器,用于接受POST请求,将req.body用于批量更新文档字段。
const express = require('express');
const router = express.Router();
const mongoose = require('mongoose');
const User = require('../models/user');
router.post('/users/:id', (req, res, next) => {
User.update({ _id: req.params.id }, req.body)
.then((result) => {
res.status(200).json({
message: 'User updated successfully',
result: result
});
})
.catch((err) => {
console.error(err);
res.status(500).json({
error: err
});
});
});
在这个代码中,Mongoose的update()方法将根据指定的_id更新文档的字段。在更新时,它将使用req.body中的值,该值应该为一个对象,其中包含要更新的字段及其对应的新值。
使用以下命令,使用POST和cURL测试上述代码:
curl --header "Content-Type: application/json" \
--request POST \
--data '{"firstName": "John", "lastName": "Doe", "email": "john.doe@example.com"}' \
http://localhost:3000/users/5f9bf4c4d68403609063c3e8
使用Mongoose的update()方法和req.body可以轻松地更新多个文档字段。您可以在已定义的路由程序中使用此功能,以处理Express应用程序中的更新请求。