关于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");  
    }
}

 

Logo

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

更多推荐