前言:
Spring Data MongoDB是Spring框架访问MongoDB的组件,使用它可以非常方便的操作MongoDB数据库。
Spring Data MongoDB是Spring Source的一个子项目,旨在为关系型数据库、非关系型数据、Map-Reduce框架、云数据服务等等提供统一的数据访问API。
Spring Data提供了基于DAO的统一接口CrudRepository完成对象的CRUD操作以及查询方法、排序和分页方法等。
Spring Data子项目
1.Commons - 提供共享的基础框架,适合各个子项目使用,支持跨数据库持久化。
2.Hadoop - 基于 Spring 的 Hadoop 作业配置和一个 POJO 编程模型的 MapReduce 作业。
3.Key-Value - 集成了 Redis 和 Riak ,提供多个常用场景下的简单封装。
4.Document - 集成文档数据库:CouchDB 和 MongoDB 并提供基本的配置映射和资料库支持。
5.Graph - 集成 Neo4j 提供强大的基于 POJO 的编程模型。
6.Graph Roo AddOn - Roo support for Neo4j。
7.JDBC Extensions - 支持 Oracle RAD、高级队列和高级数据类型。
8.JPA - 简化创建 JPA 数据访问层和跨存储的持久层功能。
9.Mapping - 基于 Grails 的提供对象映射框架,支持不同的数据库。
10.Examples - 示例程序、文档和图数据库。
11.Guidance - 高级文档。
了解完基本概念,接下来我们通过代码来教会大家如何使用这款神器。
1.添加pom.xml依赖。
2.配置spring.xml。
3.创建实体类,通过注解于MongoDB集合进行映射。
@Document:实体类与集合的映射,value可以指定集合名,若省略,默认取首字母小写之后的类名作为集合名。
@Id:标识符映射。
@Field:普通属性到字段映射,value可以指定字段名,若省略,默认取对应的属性名作为字段名。
4.测试类中调用MongoTemplate接口完成业务操作。
新增
打开终端,命令行查询结果。
添加成功。
删除
条件删除:
Query.query(new Criteria("name").is("张三0"))指定删除条件。
执行完成,再次查询,张三0成功删除。
删除并返回:
删除多条并返回集合:
删除集合:
删库:
删除之后查询,testdb库已经不存在。
修改
调用updateFirst完成,updateFirst提供了两个方法重载,分别将实体类的运行时类和集合名作为参数传入。
实体类运行时类名:
update方法的参数与实体类属性名对应。
集合名:
update方法的参数与集合字段名对应。
若被修改的对象不存在,可以使用upsert接口,先添加对象,再进行修改。
查询
查询所有记录:
查询满足条件的记录数:
查询所有满足条件的记录:
查询满足条件的第一条记录:
分页查询,去掉第1条,取2条:
根据ID查询:
in查询:
or查询:
and查询:
好了,CRUD基本操作全部完成,附上完整代码。
领取专属 10元无门槛券
私享最新 技术干货