如何删除猫鼬中子文档的参考文档?

时间:2020-09-25 00:46:58

标签: node.js mongodb mongoose

我有一个父文档ParentDoc,在猫鼬中嵌入了一个子文档。

如果我删除嵌入的子文档,如何确保其所有参考文档RefObject被删除?

对于嵌入式文档,只有在父文档上调用.remove()时,.remove()中间件才会运行。因此,我无法在subDocSchema上触发预删除钩子并在其中删除引用的对象。

删除子文档后,是否仍要删除子文档的参考对象?如果不是,是否应该将子文档作为引用文档?

const parentDocSchema = new mongoose.Schema({
  name: String,
  subDocuments: [subDocSchema],
});

const ParentDoc = mongoose.model("ParentDoc", parentDocSchema);
const subDocSchema = new mongoose.Schema({
  name: String,
  refObjects: [
    {
      type: mongoose.Schema.Types.ObjectId,
      ref: "refObject",
    },
  ],
});
const RefObject = mongoose.model(
  "RefObject",
  new mongoose.Schema({
    name: String,
  })
);

0 个答案:

没有答案