public <T> UpdateResults<T> updateFirst(
     Query<T> query, UpdateOperations<T> ops, boolean createIfMissing) {
   return update(query, ops, createIfMissing, getWriteConcern(query.getEntityClass()));
 }
 @SuppressWarnings("rawtypes")
 private <T> UpdateResults<T> update(
     Query<T> query, UpdateOperations ops, boolean createIfMissing, boolean multi) {
   return update(query, ops, createIfMissing, multi, getWriteConcern(query.getEntityClass()));
 }
 public <T> WriteResult delete(Query<T> query) {
   return delete(query, getWriteConcern(query.getEntityClass()));
 }