首页 > 解决方案 > Mongoose 更新未更新:{ ok: 0, n: 0, nModified: 0 }

问题描述

我在 MongoDB 上有一个名为“权限”的集合。我想实现这样的简单更新:

let schema = new Schema({
    title: String
  });
  let Permissions = mongoose.model("Permission", schema);
  let permission = new Permissions();

  let query = {};
  let newValues = {
    $set: {
      title: "Yes"
    }
  };
  permission.updateOne(query, newValues, (err, docs) => {
    console.log(err); // null
    console.log(docs); // { ok: 0, n: 0, nModified: 0 }
    if (err) return cast.error(err);
    return cast.ok();
  });

但是,我{ ok: 0, n: 0, nModified: 0 }在控制台日志docsnull控制台日志中收到err.

我究竟做错了什么?

标签: mongodbmongoosecrud

解决方案


根据文档

模型是从 Schema 定义编译而来的精美构造函数。模型的一个实例称为文档。模型负责从底层 MongoDB 数据库创建和读取文档。

因此,您只需要在.save()通话期间创建实例。其他操作(更新、读取、删除)应用于现有文档,因此无需创建实例。


推荐阅读