Mongoose 更新未更新:{ ok: 0, n: 0, nModified: 0 }

Raz*_*Raz 6 crud mongoose mongodb

我在 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();
  });
Run Code Online (Sandbox Code Playgroud)

不过,我收到{ ok: 0, n: 0, nModified: 0 }在控制台日志docsnull在控制台日志err

我究竟做错了什么?

Ash*_*shh 2

根据文档

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

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

  • 我面临类似的问题:我的更新给了我 { n: 1, nModified: 0, ok: 1 }。我的元素已找到但未更新。这是因为我使用的是架构对象的实例,而不是架构本身。非常感谢你。 (2认同)