mongodb的查询方式很多种,此处只列举一些常用的,比如:
1.=查询
2.模糊查询
3.大于小于范围查询
4.in查询
5.or查询
6.查询一条,查询全部
查询所有,返回List 根据作者查询所有符合条件的数据。
Query query = Query.query(Criteria.where("author").is("LINLIN"));
List<Blog> blog= mongoTemplate.find(query, Blog.class);
只查询符合条件的第一条数据,返回Blog对象
query = Query.query(Criteria.where("author").is("LINLIN"));
Blog blog= mongoTemplate.findOne(query, Blog.class);
查询集合中所有数据,不加条件
blogs = mongoTemplate.findAll(Blog.class);
查询符合条件的数量
query = Query.query(Criteria.where("author").is("LINLIN"));
long count = mongoTemplate.count(query, Blog.class);
根据主键ID查询
blog= mongoTemplate.findById(new ObjectId("598a713da5f1ba647ba0d744"), Blog.class);
in查询
query = Query.query(Criteria.where("MuNan").in(visitor));
blogs= mongoTemplate.find(query, Blog.class);
ne(!=)查询
query = Query.query(Criteria.where("author").ne("LINLIN"));
blogs= mongoTemplate.find(query, Blog.class);
lt(<)查询访问量小于1000的文章
query = Query.query(Criteria.where("visitorCount").lt(1000));
blogs= mongoTemplate.find(query, Blog.class);
范围查询,大于249小于251
query = uery.query(Criteria.where("visitCount").gt(249).lt(251));
blogs= mongoTemplate.find(query, Blog.class);
模糊查询,author中包含L的数据
query = Query.query(Criteria.where("author").regex("L"));
blogs= mongoTemplate.find(query, Blog.class);
数组查询,查询tags里数量为3的数据
query = Query.query(Criteria.where("tags").size(3));
blogs= mongoTemplate.find(query, Blog.class);
or查询,查询author=LINLIN的或者visitorCount=10000的数据
query = Query.query(Criteria.where("").orOperator(
Criteria.where("author").is("jason"),
Criteria.where("visitorCount").is(0)));
blogs = mongoTemplate.find(query, Blog.class);