文章目录
- 1、整合
- 2、简单示例
- 3、一点思考
- 4、MongoDB的安装
- 5、MongoDB的CRUD语法
1、整合
导入MongoBD的起步依赖:(这个starter背后是MongoDB的驱动和其他依赖,在这儿也可以看出命名的规律,redis的就是spring-boot-starter-data-redis)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
书写相关配置:
# 只写URI即可操作数据库,其余细节配置自行添加
spring:
data:
mongodb:
uri: mongodb://localhost/testDB
在需要操作数据的地方注入MongoTemplate对象
@Autowired
MongoTemplate mongoTemplate;
2、简单示例
调用指令对应的方法或API完成CRUD:
@Test
void testSave(@Autowired MongoTemplate mongoTemplate){
Book book = new Book();
mongoTemplate.save(book);
}
@Test
void testFind(@Autowired MongoTemplate mongoTemplate){
List<Book> all = mongoTemplate.findAll(Book.class);
System.out.println(all);
}
3、一点思考
到这儿,可以发现,关于SpringBoot整合第三方技术框架,实现步骤可以抽象出以下几步:
- 引入相关的依赖或者起步依赖
- application.yaml中写配置(
在配置文件中直接输入关键字来找可能的配置
) - 使用封装好的工具对象或Bean来完成操作,如JdbcTemplate、RedisTemplate、MongoTemplate…
此时,就可(在UT中)进行简单的试运行,若出错,分析报错信息,从中找解决思路即可。
4、MongoDB的安装
这里简单整理下MongoDB的基本知识,后续专门学习MongoDB了再写笔记。
MongoDB是一个开源、高性能、
无模式
的文档型
数据库。NoSQL数据库产品中的一种,是最像关系型数据库的非关系型数据库
安装只写Windows下的,Linux的yum或者docker启动等后续学习时再整理:
- 下载
https://www.mongodb.com/try/download
-
进入解压缩后的目录新建一个数据目录,如:/data/db
-
启动Mongo服务端,首次会有一个初始化的动作
mongod --dbpath=..\data\db
- 客户端连接Mongo
mongo --host=127.0.0.1 --port=27017
最后,Windows下安装Mongo可能有以下报错:
报错的原因是你当前的操作系统是阉割版的操作系统,即缺少相关dll文件,解决方法为:
- 下载对应的dll文件(通过互联网搜索即可)
- 拷贝到windows安装路径下的system32目录中
- 执行命令以下注册对应dll文件
regsvr32 vcruntime140_1.dll
5、MongoDB的CRUD语法
以下的集合名称,集合即其他数据库中的table:
- 新增
db.集合名称.insert/save/insertOne(文档)
- 修改
db.集合名称.update(条件,{操作种类:{文档}})
- 删除
db.集合名称.remove(条件)
- 基础查询
查询全部:db.集合.find();
查第一条:db.集合.findOne()
查询指定数量文档:db.集合.find().limit(10) //查10条文档
跳过指定数量文档:db.集合.find().skip(20) //跳过20条文档
统计:db.集合.count()
排序:db.集合.sort({age:1}) //按age升序排序
投影:db.集合名称.find(条件,{name:1,age:1}) //仅保留name与age域
- 条件查询
基本格式:db.集合.find({条件})
模糊查询:db.集合.find({域名:/正则表达式/}) //等同SQL中的like,比like强大,可以执行正则所有规则
条件比较运算:db.集合.find({域名:{$gt:值}}) //等同SQL中的数值比较操作,例如:name>18
包含查询:db.集合.find({域名:{$in:[值1,值2]}}) //等同于SQL中的in
条件连接查询:db.集合.find({$and:[{条件1},{条件2}]}) //等同于SQL中的and、or