📜  Mongoose 多更新 req.body - Javascript (1)

📅  最后修改于: 2023-12-03 15:32:57.740000             🧑  作者: Mango

Mongoose 多更新 req.body

在使用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测试代码

使用以下命令,使用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应用程序中的更新请求。