关于springboot整合mongodb,可查看博文
https://blog.csdn.net/qq_41712271/article/details/116062611
import cn.huawei.JineErpApplication;
import cn.huawei.pojo.Userinfos;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Query;
import java.util.List;
@SpringBootTest(classes = JineErpApplication.class)
public class Test_3 {
@Autowired
private MongoTemplate mongoTemplate;
@Test
public void fangfa_5() {
Query query_1 = new Query();
/*
$gt:大于
$lt:小于
$gte:大于或等于
$lte:小于或等于
*/
query_1.addCriteria(Criteria.where("age").gt(586).lt(590));
/*
不等于 $ne
*/
query_1.addCriteria(Criteria.where("age").ne(28));
//in
query_1.addCriteria(Criteria.where("roles").in("gen","vip"));
//not in
query_1.addCriteria(Criteria.where("roles").nin("gen","vip"));
/*
$all和$in类似,但是他需要匹配条件内所有的值 ,【gen, vip, putong】 这种也会返回
*/
query_1.addCriteria(Criteria.where("roles").all("gen","vip"));
/*
取模运算$mod
如 age % 2 == 0
*/
query_1.addCriteria(Criteria.where("age").mod(2,0));
/*
$size是匹配数组内的元素数量的,如有一个对象:{roles:["gen", "vip", "putong"]},他有3个元素
官网上说不能用来匹配一个范围内的元素,如果想找$size<5之类的,他们建议创建一个字段来保存元素的数量。
*/
query_1.addCriteria(Criteria.where("roles").size(3));
/*
$exists用来判断一个字段是否存在
*/
query_1.addCriteria(Criteria.where("address").exists(true));
/*
$type 基于 bson type来匹配一个字段的类型
*/
query_1.addCriteria(Criteria.where("_id").type(JsonSchemaObject.Type.BsonType.OBJECT_ID));
/*
查询嵌入对象的值
*/
query_1.addCriteria(Criteria.where("ename.firstname").is("san"));
List<Userinfos> userList = mongoTemplate.find(query_1, Userinfos.class, "userinfos");
}
}