--------------------------------------
稳住,你可以的
--------------------------------------
初次操作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);