MongodbTemplate的查询操作
来源:互联网 发布:淘宝网开通账户 编辑:程序博客网 时间:2024/06/06 10:58
Class类
@Document(collection = "class")public class Class { private String classId; private String teacher; private List<Student> Students; public String getClassId() { return classId; } public void setClassId(String classId) { this.classId = classId; } public String getTeacher(){ return teacher; } public void setTeacher(String teacher){ this.teacher = teacher; } public List<Student> getStudents() { return Students; } public void setStudents(List<Student> Students) { this.Students = Students; } @Override public String toString() { return "Class [classId=" + classId + ", Students=" + Students + "]"; }}
查询满足条件的数据
Query query = Query.query(Criteria.where("classId").is("1"));List<Class> classs = mongoTemplate.find(query,Class.class,"class");System.out.println(classs);
查询满足条件的第一条数据
Query query = Query.query(Criteria.where("classId").is("1"));List<Class> classs = mongoTemplate.findOne(query,Class.class,"class");System.out.println(classs);
筛选要查询的字段(id字段不查出来)
DBObject dbObject = new BasicDBObject();dbObject.put("classId", "1");DBObject fieldObject = new BasicDBObject();fieldObject.put("_id", false);Query query = new BasicQuery(dbObject, fieldObject);List<HashMap> classs = mongoTemplate.find(query,HashMap.class,"class");System.out.println(classs);
当然也可以不使用HashMap,而使用自己封装的dto,那么只会查询出dto中的字段。
查询结果排序
DBObject dbObject = new BasicDBObject();dbObject.put("classId", "1");DBObject fieldObject = new BasicDBObject();fieldObject.put("_id", false);Query query = new BasicQuery(dbObject);query.with(new Sort(Direction.ASC,"classId"));List<HashMap> classs = mongoTemplate.find(query,HashMap.class,"class");System.out.println(classs);
多字段排序
DBObject dbObject = new BasicDBObject();dbObject.put("classId", "1");DBObject fieldObject = new BasicDBObject();fieldObject.put("_id", false);Query query = new BasicQuery(dbObject);List<Sort.Order> orders = new ArrayList<>();orders.add(new Sort.Order(Direction.DESC, "classId"));orders.add(new Sort.Order(Direction.DESC, "teacher"));query.with(new Sort(orders));List<HashMap> classs = mongoTemplate.find(query,HashMap.class,"class");System.out.println(classs);
查询结果分页
int pageNum = 1;int pageSize = 10;DBObject dbObject = new BasicDBObject();dbObject.put("classId", "1");DBObject fieldObject = new BasicDBObject();fieldObject.put("_id", false);Query query = new BasicQuery(dbObject,fieldObject);List<Sort.Order> orders = new ArrayList<>();orders.add(new Sort.Order(Direction.ASC, "classId"));orders.add(new Sort.Order(Direction.DESC, "teacher"));query.with(new Sort(orders));query.skip(pageSize*(pageNum-1)).limit(pageSize);List<HashMap> classs = mongoTemplate.find(query,HashMap.class,"class");System.out.println(classs);
还有一种通过Morphia框架的做法:
int pageNum = 1;int pageSize = 10;DBObject dbObject = new BasicDBObject();dbObject.put("teacher", "Mr.wang");DBObject fieldObject = new BasicDBObject();fieldObject.put("_id", false);fieldObject.put("_class", false);DBObject sortDBObject=new BasicDBObject(); sortDBObject.put("classId",1); DBCursor result = mongoTemplate.getCollection("class") .find(dbObject, fieldObject) .sort(sortDBObject) .skip(pageSize*(pageNum-1)).limit(pageSize);System.out.println(result.count());System.out.println(result.toArray());
多条件查询
我们只需要对query对象做出处理即可
Criteria criteria = new Criteria(); criteria.orOperator(Criteria.where("classId").is("2"),Criteria.where("teacher").is("Mr.wang"));criteria.andOperator(Criteria.where("classId").is("2"));query.addCriteria(criteria);
阅读全文
0 0
- MongodbTemplate的查询操作
- MongodbTemplate的增删改操作
- mongodbTemplate查询
- MongoDBTemplate类的使用
- spring data mongodb之mongodbTemplate查询总结
- mongodbtemplate 做统计的一个代表例子
- Spring MongodbTemplate 查找10公里范围内的目标(以车辆为例)
- Elasticsearch 的查询操作
- 关于AD的查询操作
- SQL XML的查询操作
- mongodb的查询操作符
- mongodb的查询操作符
- mongoDB数据库的查询操作
- solrJ的简单查询操作
- SQL的查询操作语句
- MongoDb的普通查询操作
- MySQL的查询日志操作
- Hibernate的数据库查询操作
- centos 能ping 通 ssh 无法连接
- Go实现并发排序
- 牛客笔试:丢失的三个数
- 图解Android系统的启动过程
- OpenCV-Python——图像金字塔
- MongodbTemplate的查询操作
- 10.5日常总结
- 前端实用工具及其js相关功能的类库总结
- 信号量处理相关函数
- 顺序表筛选数据的应用
- Stars(树状数组)
- socket通信
- excel实现分组
- 从输入URL到页面显示发生了什么