场景
使用SpringBoot+MongoDB实现用户分页查询,需要使用in条件进行用户组权限过滤。
mongodb使用版本2.3.8,pom文件引用如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
配置文件中进行集群配置
spring:
data:
mongodb:
uri: mongodb://127.0.0.1:27017,127.0.0.1:27018,127.0.0.1:27019/myproject
#ip1:port1,ip2:port2,ip3:port3/数据库名称
1、定义用户实体类userEntity
//使用lombok,不写get、set方法
@Data
public class UserEntity implements Serializable {
private static final long serialVersionUID = 1L;
private String _id;
private String user_id;
private String user_name;
private String group_id;
private String group_name;
}
插入到mongodb的数据为:
{
"_id" : ObjectId("60a21b1039706e8ca120d123"),
"user_id" : "b810517ca081955f4af6b7e34ca12123",
"user_name" : "test001"
"group_id" : "1396706569090367490",
"group_name" : "test001"
}
2、编写分页查询方法
使用MongoTemplate模板进行user查询
@Autowired
private MongoTemplate mongoTemplate;
@Override
public IPage findListPage(PageParams pageParams) {
//分页参数
int totalCount = 0;
Integer currPage = pageParams.getPage();// 当前页
Integer pageSize = pageParams.getLimit();// 每页个数
String userName = (String) pageParams.getRequestMap().get("userName");
String groupName = (String) pageParams.getRequestMap().get("groupName");
//获取用户组id集合
ArrayList<String> idList = getUserGroupIdList();
//组合查询条件
Query query = new Query();
Query q