Java对MongoDB的几个查询操作
依赖<dependency><groupId>org.mongodb</groupId><artifactId>mongo-java-driver</artifactId><version>3.0.4</version></dependency>1.模糊查询likeString keyword
·
依赖
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.0.4</version>
</dependency>
1.模糊查询like
String keyword = "user";
Query query = Query.query(Criteria.where("name").regex( ".*?" + keyword + ".*" ));
result = mongoTemplate.find(query, User.class);
2.模糊查询not like
String keyword = "user";
Query query = Query.query(Criteria.where("name").regex( "^((?!" + keyword + ").)*$" ));
result = mongoTemplate.find(query, User.class);
3.不等于 ne
String keyword = "user";
Query query = Query.query(Criteria.where("name").ne(keyword);
result = mongoTemplate.find(query, User.class);
`
4.等于 is
```java
String keyword = "user";
Query query = Query.query(Criteria.where("name").is(keyword);
result = mongoTemplate.find(query, User.class);
5.包含 in
object[] keyword = new object;
keyword = {1,2,3,4,5,6};
Query query = Query.query(Criteria.where("name").in(keyword);
result = mongoTemplate.find(query, User.class);
6.大于gt
String keyword = "user";
Query query = Query.query(Criteria.where("name").gt(keyword);
result = mongoTemplate.find(query, User.class);
7.小于lt
String keyword = "user";
Query query = Query.query(Criteria.where("name").lt(keyword);
result = mongoTemplate.find(query, User.class);
8.大于等于gte
String keyword = "user";
Query query = Query.query(Criteria.where("name").gte(keyword);
result = mongoTemplate.find(query, User.class);
9.小于等于lte
String keyword = "user";
Query query = Query.query(Criteria.where("name").lte(keyword);
result = mongoTemplate.find(query, User.class);
10.其他写法
如果是多个查询条件。需要for循环
伪代码
Query query = new Query();
JSONArray jsonarray = xxxx //查询条件
for(i=0;i<jsonarray.size();i++){
JSONObject jo = jsonarray .getJSONObject(i);
String name = jo.getString("name");
String value= jo.getString("value");
String judge= jo.getString("judge"); //等于,大于,小于,模糊查询,大于等于。。。。。
String = jo.getString("value");
Criteria criteria = new Criteria();
switch(judge){
case "eq":
criteria = Criteria.where(name).is(value);
break;
........
}
//判断连接条件
query.addCriteria(new Criteria.andOperator(criteria));
query.addCriteria(new Criteria.orOperator(criteria));
}
//分页
query.sort(排序).skip(从第几页开始).limit(每一页显示几条数据);
//执行查询
result = mongoTemplate.find(query, User.class);
注意:
skip(), limilt(), sort()三个放在一起执行的时候,执行的顺序是先 sort(), 然后是 skip(),最后是显示的 limit()。
更多推荐
已为社区贡献1条内容
所有评论(0)