Mongodb/Node.js findByIdAndUpdate方法未更新

Mongodb/Node.js findByIdAndUpdate方法未更新,node.js,mongodb,Node.js,Mongodb,我正在尝试使用findByIdAndUpdate方法更新mongo数据库中的集合。我点击端点并发送带有更新信息的请求,响应始终是更新之前的信息,并且更新从未出现在我的数据库中 我做错了什么 下面是我的edit.js文件: const express = require('express'); const bodyParser = require('body-parser'); const _ = require('lodash'); const dbConfig = require('../mo

我正在尝试使用findByIdAndUpdate方法更新mongo数据库中的集合。我点击端点并发送带有更新信息的请求,响应始终是更新之前的信息,并且更新从未出现在我的数据库中

我做错了什么

下面是我的edit.js文件:

const express = require('express');
const bodyParser = require('body-parser');
const _ = require('lodash');
const dbConfig = require('../mongo/dbConfig');
const Band = require('../mongo/models/band');
const mongoose = require('mongoose');


// Initialize the router
const router = express.Router();
mongoose.connect(dbConfig.devUrl);

//init body parser
router.use(
  bodyParser.urlencoded({
    extended: true
  })
);

router.use(bodyParser.json());

router.post('/band/editProfile', function (req, res) {
  console.log(req.body);
  console.log("it hit !!!!!!!!!!!!!!!!!!");
  Band.findByIdAndUpdate(
    // the id of the item to find

   req.body.id,
    {
      bands: {
        bandName: req.body.bandName,
        genre: req.body.genre,
        numberOfMembers: req.body.numberOfMembers,
        city: req.body.city,
        state: req.body.state,
        zip: req.body.zip,
        travel: req.body.travel,
        travelDistance: req.body.travelDistance,
        spotify: req.body.spotify,
        youtube: req.body.youtube,
        soundcloud: req.body.soundcloud,
        twitter: req.body.twitter,
        facebook: req.body.facebook
      }
    },
    function (err, response) {
      // Handle any possible database errors
      if (err) {
        console.log("we hit an error" + err);
        res.json({
          message: 'Database Update Failure'
        });
      }
      console.log("This is the Response: " + response);
    }
  );
});
这是我的乐队模型:

//Module Imports
const mongoose = require('mongoose');

//Initializes a mongoose schema to be used with the document
const bandSchema = new mongoose.Schema({
  bandName: String,
  genre: String,
  numberOfMembers: Number,
  city: String,
  state: String,
  zip: String,
  travel: Boolean,
  travelDistance: Number,
  spotify: String,
  youtube: String,
  soundcloud: String,
  twitter: String,
  facebook: String
});

//Creates the Schema to be used with the export
let Band = mongoose.model('band', bandSchema);

//Exports the Schema to the API
module.exports = Band;

我已经对此进行了非常彻底的研究,我被卡住了,因此非常感谢您的帮助

波段
在更新对象中,但不在模式中。只需删除更新对象的附加层,更新就可以工作了。但是您还需要将
{new:true}
选项作为单独的参数包含在内,以便返回更新的文档而不是原始文档(请参阅)


这就解决了!非常感谢你!
Band.findByIdAndUpdate(
  req.body.id,
  {
    bandName: req.body.bandName,
    genre: req.body.genre,
    numberOfMembers: req.body.numberOfMembers,
    city: req.body.city,
    state: req.body.state,
    zip: req.body.zip,
    travel: req.body.travel,
    travelDistance: req.body.travelDistance,
    spotify: req.body.spotify,
    youtube: req.body.youtube,
    soundcloud: req.body.soundcloud,
    twitter: req.body.twitter,
    facebook: req.body.facebook
  },
  {new: true},
  function (err, response) {
    // Handle any possible database errors
    if (err) {
      console.log("we hit an error" + err);
      res.json({
        message: 'Database Update Failure'
      });
    }
    console.log("This is the Response: " + response);
  }
);