依赖

        <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()
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐