import mongoose from 'mongoose';
const userSchema = new mongoose.Schema({
username: {
type: String,
unique: true
}
});
userSchema.statics.findByLogin = async function(login) {
let user = await this.findOne({
username: login,
})
if(!user) {
user = await this.findOne({ email: login });
}
return user;
};
// what does this keyword refers to
userSchema.pre('remove', function(next) {
this.model('Message').deleteMany({ user: this._id }, next);
});
const User = mongoose.model('User', userSchema);
export default User;
当删除用户时,我只是在userSchema上编写了一个hook方法,该方法删除了由该用户编写的消息。我的问题是this.model('Message').deleteMany({ user: this._id }, next);
,在这种情况下,这指的是什么。我虽然第一个指的是猫鼬,第二个指的是当前已删除的用户,但这是否表示此语句中的其他内容?