supporting detection by _id, otherwise finding by attributes