JAVA使用MongoTemplate查询mongo数据

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

稳住,你可以的

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

 

 

初次操作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 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);

 

 

 

你可能感兴趣的:(MongoDB)