Can someone suggest a better way to do this?

Why do you need to do the count first? Just do the find, check if it actually returns the valid object and delete it only in this case.