How to deleteMany in pre 'indOneAndDelete' hook?

I have a User model and BlogPost model. User model stores an array of blogPosts. I setup a pre 'findOneAndDelete' hook, to deletMany blogPosts associated with the user, using Model.deleteMany, but its not working. There is 1 post in blogPosts array.

Result from

await BlogPost.deleteMany({ _id: { $in: this.blogPosts } });

is

{ n: 0, ok: 1, deletedCount: 0 }
{ n: 0, ok: 1, deletedCount: 0 }
{ n: 0, ok: 1, deletedCount: 0 }

The same pre hook works, if change the hook from 'findOneAndDelete' to 'remove', but 'remove is deprecated.

Any ideas?

User schema

const UserSchema = new Schema({
  name: {
    type: String,
    required: [true, 'Name is required'],
    validate: {
      validator(name) {
        if (name.length > 2 && name.length < 10) {
          return true;
        }
        return false;
      },
      message: () => `Name must be between 2 and 10 characters`
    }
  },
  posts: [PostSchema],
  likes: {
    type: Number,
    default: 0
  },
  blogPosts: [
    {
      type: Schema.Types.ObjectId,
      ref: 'blogPost'
    }
  ]
});

UserSchema.pre('findOneAndDelete', async function(next) {
  const BlogPost = mongoose.model('blogPost');
  const res = await BlogPost.deleteMany({ _id: { $in: this.blogPosts } });
  next();
});

BlogPost schema

const BlogPostSchema = new Schema({
  title: String,
  content: String,
  comments: [
    {
      type: Schema.Types.ObjectId,
      ref: 'comment'
    }
  ]
});
    const user = await User.findOneAndDelete({ name: 'Ssam' });