implement findAndModify, modifyAndFind, pull, upsert