方案是我有一个User
模型,它有一个名为filedLeaves
的数组,其中包含在另一个集合中引用的ObjectId。我想要做的是在删除特定用户后从其集合中删除那些ObjectIds。
这是我的用户模型
var schema = new Schema({
fullName: {
type: String,
required: true,
unique: true
},
leaveCredits: {
type: Number
},
filedLeaves: [{
type: Schema.Types.ObjectId,
ref: 'Leave'
}]
}, {
usePushEach: true
});
我的离开模型
var schema = new Schema({
userId: {
type: Schema.Types.ObjectId,
ref: 'User'
},
status: {
type: String,
required: true
},
start: {
type: String,
required: true
},
end: {
type: String,
required: true
},
type: {
type: String,
required: true
}
});
我在我的用户模型上尝试了这个,但似乎没有用。
schema.post('remove', function (user) {
user.filedLeaves.forEach(id => {
Leave.findByIdAndRemove(id)
});
});