【发布时间】:2021-12-06 16:11:10
【问题描述】:
我有 3 个架构,包括:
建筑
const BuildingSchema = mongoose.Schema({
address: { type: String, required: true },
numberOfRooms: { type: Number, default: 0 },
});
房间
const RoomSchema = mongoose.Schema({
roomNumber: { type: Number, required: true, unique: false },
building: {
type: mongoose.Schema.Types.ObjectId,
ref: "Building",
required: true,
unique: false,
},
});
协议
const AgreementSchema = mongoose.Schema({
agreementNumber: { type: Number, unique: true },
room: {
type: mongoose.Schema.Types.ObjectId,
ref: "Room",
required: true,
unique: false,
},
});
我的场景是在删除建筑物之后
- 与建筑相关的所有房间
- 与房间相关的所有协议
也将被删除,目前我知道如何删除与建筑相关的房间:
BuildingSchema.pre("deleteOne", function (next) {
Room.deleteMany({ building: this._conditions._id }).exec();
next();
});
那么我该如何使用pre 中间件呢?
我的猫鼬版:^6.0.12
谢谢!
【问题讨论】:
标签: javascript mongodb express mongoose