我有一个父文档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,
})
);