首页 > 解决方案 > Node + mongoose:删除模型及其关系中的所有记录

问题描述

在 Node 应用程序中,有一个名为Version的模型,它通过其id引用资源模型的数组(作为一对多关系):

const versionSchema = new mongoose.Schema({
  name: String,
  images: [{ type: Schema.Types.ObjectId, ref: 'Resource' }]
}, { timestamps: true })
const Version = mongoose.model('version', versionSchema)

在应用程序的某些部分,我想删除所有“版本”以及与它们相关的那些资源。我已经编写了下面的代码,它可以工作,但我不知道(而且我无法确定)这是否是最好的方法。

const versions = await Version.find()
for(let version of versions) {
  const ids = version.images
  await Resource.remove({_id: {$in: ids }})
  await version.delete()
}

谁能帮助我,告诉我这是否是一个好方法,或者是否有另一种更适合我必须做的方法?

标签: node.jsmongodbmongoose

解决方案


推荐阅读