JAVA使用MongoTemplate查询mongo数据

本文介绍MongoDB中多种查询条件的应用方法,包括精确查询、模糊查询、范围查询等,并提供了与SQL语句的对比示例,有助于理解不同查询方式的具体用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--------------------------------------

稳住,你可以的

--------------------------------------

 

 

初次操作Mongdb,总结了一下查询条件的添加方法,译为常用sql语句进行比较和查看

 @Test
    public void testMongo(){
        Criteria criteria = new Criteria();
        /*精确查询--关键字:is-- select * from db where vid=‘111’ ----*/
        criteria.and("vid").is(111);

        /*模糊查询--关键字:regex-- select * from db where checkAddress like ‘%我%’ ----*/
        criteria.orOperator(Criteria.where("checkAddress").is("我"),Criteria.where("checkAddress").regex(".*?" + "我" + ".*"));

        /*大于等于--关键字:gte-- select * from db where startCheckTime >= 1522829999 -----*/
        criteria.and("startCheckTime").gte(1522829999);

        /*小于等于--关键字:lte-- select * from db where endCheckTime <= 1522832000 -----*/
        criteria.and("endCheckTime").lte(1522832000);

        /*非空查询--关键字:ne-- select * from db where vehicleLicense <> "" and vehicleLicense is not null*/
        criteria.and("vehicleLicense").ne("").ne(null);

        /*集合查询--关键字:in-- select * from db where vehicleLicense in (1,2,3)*/
        Object[] o = new Object[]{1, 2, 3};
        criteria.and("vehicleLicense").in(o);

        /*或查询--关键字:orOperator-- select * from db where checkAddress='我' or checkAddress='666' ----*/
        criteria.orOperator(Criteria.where("checkAddress").is("我"),Criteria.where("checkAddress").is("666"));

        /*且查询--关键字:and-- select * from db where vid=‘111’ and vid='222' ----*/
        criteria.and("vid").is(111).and("vid").is(222);
        /*---------------------------------------------------------------------*/
        Query query = new Query(criteria);
        /*分页--关键字:skip(跳过多少数据: (pageNum-1)*pageSum), limit(显示多少数据: pageSum)*/
        query.skip(1);
        query.limit(2);
        /*---------------------------------------------------------------------*/
        /*查询详细数据--关键字:find*/
        List<NoxCheckProcessDataCollection> list= this.mongoTemplate.find(query, NoxCheckProcessDataCollection.class);
        /*查询数据总数--关键字:count*/
        long count = this.mongoTemplate.count(query, NoxCheckProcessDataCollection.class);
        System.out.print(list.size());
    }

关于gte和lte说明一下,这两个关键字不可以使用在同一个字段上,如:

        criteria.and("startCheckTime").gte(1522829999);

        criteria.and("startCheckTime").lte(1522832000);

这样会报错,‘startchecktime’已经存在gte不能再使用lte,想要同时使用gte和lte这样就好了:

        criteria.and("startCheckTime").gte(1522829999).lte(1522832000);

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值