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

发布于 2022-09-06 12:14:42 字数 1003 浏览 13 评论 0

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

clipboard.png

这是我的后台代码:

clipboard.png

打印出来的数据分别是:

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

这是我的前端代码:

clipboard.png

数据库:

clipboard.png

这是我的Manager的model:

clipboard.png

引入:

let Manager = require('../models/manager');

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

dawn曙光 2022-09-13 12:14:42

首先确认下你的 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)
})

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

回忆凄美了谁 2022-09-13 12:14:42

更新的时候要注意两个点

  1. Schema 中,是否有update的字段
  2. 执行update()方法的是 Model类,而不是Model的实例对象; 使用实例对象去obj.update() 是不会修改的
错爱 2022-09-13 12:14:42

解决了,是我的Schema结构问题。。


2020-03-26更新:
当时没有把具体的schema改正方案写上,现在已经忘记了,非常后悔。但仓库我保留着,那些正确的schema在这里,希望对大家能有所帮助:
https://github.com/neroneroffy/vue-backage/tree/master/server/models

静若繁花 2022-09-13 12:14:42

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文