如何在 Mongoose 中按 ID 删除文档

发布于 2022-12-15 22:30:48 字数 1339 浏览 60 评论 0

目前没有调用的方法 deleteById() 在 Mongoose 中。 然而有 deleteOne() 带有参数的方法, filter 指示要删除的文档。 只需通过 _id 作为 filter 并且文档将被删除。

const testSchema = new mongoose.Schema({
    name: String
});

const Test = mongoose.model('Test', testSchema);

async function run() {
  const entry = await Test.create({ name: 'Masteringjs.io' });
  console.log(await Test.countDocuments({ _id: entry._id })); // 1

  // Delete the document by its _id
  await Test.deleteOne({ _id: entry._id });

  console.log(await Test.countDocuments({ _id: entry._id })); // 0
}

run();

使用实例方法

你也可以让 deleteById() 模式上的 Mongoose 静态 ,这将使 deleteById() 模型上的一个函数,如下所示。

const testSchema = new mongoose.Schema({
  name: String
});

testSchema.statics.deleteById = function(_id) {
  return this.deleteOne({ _id: _id })
};

const Test = mongoose.model('Test', testSchema);

async function run() {
  const entry = await Test.create({ name: 'Masteringjs' });
  console.log(await Test.countDocuments({ _id: entry._id })); // 1

  await Test.deleteById(entry._id);

  console.log(await Test.countDocuments({ _id: entry._id })); // 0  
}

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

文章
评论
27 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

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