BaseMongoDao接口:
import com.zh.cloud.common.data.entity.GridRequest;
import org.springframework.data.mongodb.core.mapreduce.GroupBy;
import java.util.List;
public interface BaseMongoDaoI<T> {
/**
* 保存数据对象,集合为数据对象中@Document 注解所配置的collection
*
* @param obj
* 数据对象
*/
public void save(T obj) ;
/**
* 指定集合保存数据对象
*
* @param obj
* 数据对象
* @param collectionName
* 集合名
*/
void save(T obj, String collectionName) ;
/**
* 根据数据对象中的id删除数据,集合为数据对象中@Document 注解所配置的collection
*
* @param obj
* 数据对象
*/
void remove(T obj) ;
/**
* 指定集合 根据数据对象中的id删除数据
*
* @param obj
* 数据对象
* @param collectionName
* 集合名
*/
void remove(T obj, String collectionName) ;
/**
* 根据key,value到指定集合删除数据
*
* @param key
* 键
* @param value
* 值
* @param collectionName
* 集合名
*/
void removeById(String key, Object value, String collectionName);
/**
* 指定集合 修改数据,且仅修改找到的第一条数据
*
* @param accordingKey
* 修改条件 key
* @param accordingValue
* 修改条件 value
* @param updateKeys
* 修改内容 key数组
* @param updateValues
* 修改内容 value数组
* @param collectionName
* 集合名
*/
void updateFirst(String accordingKey, Object accordingValue, String[] updateKeys, Object[] updateValues,
String collectionName);
/**
* 指定集合 修改数据,且修改所找到的所有数据
*
* @param accordingKey
* 修改条件 key
* @param accordingValue
* 修改条件 value
* @param updateKeys
* 修改内容 key数组
* @param updateValues
* 修改内容 value数组
* @param collectionName
* 集合名
*/
void updateMulti(String accordingKey, Object accordingValue, String[] updateKeys, Object[] updateValues,
String collectionName) ;
/**
* 根据条件查询出所有结果集 集合为数据对象中@Document 注解所配置的collection
*
* @param obj
* 数据对象
* @param findKeys
* 查询条件 key
* @param findValues
* 查询条件 value
* @return
*/
List<T> find(T obj, String[] findKeys, Object[] findValues);
/**
* 指定集合 根据条件查询出所有结果集
*
* @param obj
* 数据对象
* @param findKeys
* 查询条件 key
* @param findValues
* 查询条件 value
* @param collectionName
* 集合名
* @return
*/
List<T> find(T obj, String[] findKeys, Object[] findValues, String collectionName);
/**
* 指定集合 根据条件查询出所有结果集 并排倒序
*
* @param obj
* 数据对象
* @param findKeys
* 查询条件 key
* @param findValues
* 查询条件 value
* @param collectionName
* 集合名
* @param sort
* 排序字段
* @return
*/
List<T> find(T obj, String[] findKeys, Object[] findValues, String collectionName ,String sort);
/**
* 指定集合 分组查询结果
*
* @param obj
* 数据对象
* @param groupBy
* 排序对象
* @param collectionName
* 集合名
* @return
*/
List<T> group(String collectionName, GroupBy groupBy, T obj);
/**
* 根据条件查询出符合的第一条数据 集合为数据对象中 @Document 注解所配置的collection
*
* @param obj
* 数据对象
* @param findKeys
* 查询条件 key
* @param findValues
* 查询条件 value
* @return
*/
T findOne(T obj, String[] findKeys, Object[] findValues) ;
/**
* 指定集合 根据条件查询出符合的第一条数据
*
* @param obj
* 数据对象
* @param findKeys
* 查询条件 key
* @param findValues
* 查询条件 value
* @param collectionName
* 集合名
* @return
*/
T findOne(T obj, String[] findKeys, Object[] findValues, String collectionName) ;
/**
* 查询出所有结果集 集合为数据对象中 @Document 注解所配置的collection
* 数据对象
* @return
*/
List<T> findAll(T obj) ;
/**
* 指定集合 查询出所有结果集
*
* @param obj
* 数据对象
* @param collectionName
* 集合名
* @return
*/
List<T> findAll(T obj, String collectionName) ;
/**
* 分页查询所有数据
* @param obj
* @param sort
* @param pageIndex
* @param pageConnt
* @return
*/
List<T> findAllByPage(T obj,String sort,int pageIndex, int pageConnt) ;
/**
* 查询数据数量
* @param obj
* @return
*/
long getCount(T obj) ;
/**
* 查询数据数量(带条件)
* @param obj
* @return
*/
long getCount(T obj, String sort, GridRequest gridRequest);
/**
* 最牛逼的find方法 , 排序 筛选 分页都实现
*
* @param obj
* 数据对象
* @param sort
* 排序条件 key
* @param gridRequest
* 前端封装对象
* @return
*/
List<T> find(T obj, String sort, GridRequest gridRequest);
/**
* 根据条件查询出所有结果集 集合为数据对象中@Document 注解所配置的collection
*
* 模糊查询
*
* @param obj
* 数据对象
* @param findKeys
* 查询条件 key
* @param findValues
* 查询条件 value
* @return
*/
List<T> findLike(T obj, String[] findKeys, Object[] findValues);
}