mongoose 的update不能更新数据,但没有错误

也找到了,更新条件也对,为什么就更新不过来呢?
这是后台返回的数据:

clipboard.png

这是我的后台代码:

clipboard.png

打印出来的数据分别是:

3213423
{ '$set': { status: false } }

这是我的前端代码:

clipboard.png

数据库:

clipboard.png

这是我的Manager的model:

clipboard.png

引入:

let Manager = require('../models/manager');
阅读 12k
4 个回答

首先确认下你的 model 是否正确的定义,其次 Model.update() 直接使用已存在的 model 实例是无效的:

图片描述


仅供参考:

config:

module.exports = {
    mongodb : 'mongodb://userName:password@localhost:27017/database', //mongodb数据库连接配置
};

schema:

module.exports = {
    user: {
        phone:      { type: String, required: true }, 
        code:       { type: String, required: true }, 
    }
}

model:

const mongoose = require('mongoose');
mongoose.Promise = global.Promise;
const mongoConfig = require('./mongo.config');
const schema = require('./schema');

let db = mongoose.createConnection(mongoConfig.mongodb);
db.on('error', console.error.bind(console, 'connection error: '));

const userschema = new mongoose.Schema( schema.user,  {collection: 'userCollection'} );
const UserModel = db.model('UserModel', userschema);

module.exports = {
    UserModel: UserModel,
}

update:

const Model = require('./model');

Model.UserModel.update({phone: '111'}, {$set:{code:'123'}}, (err, doc) => {
    if (err) console.log(err);
    console.log(doc)
})

建了个库操作了下,是没问题的。

更新的时候要注意两个点

  1. Schema 中,是否有update的字段
  2. 执行update()方法的是 Model类,而不是Model的实例对象; 使用实例对象去obj.update() 是不会修改的
新手上路,请多包涵

您好我想知道具体如何修改

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题