(4)连接数据库
可以使用数据库客户端,这里使用的是Navicat,左下角测试,连接成功。
注:连接成功后在命令输入区域输入命令即可操作MongoDB。这里只说一些简单操作,之后会有专门的MongoDB的博客。
a.创建数据库:
在左侧菜单中使用右键创建,输入数据库名称即可
b.创建集合:
在Collections上使用右键创建,输入集合名称即可,集合等同于数据库中的表的作用
c.新增文档:
(文档是一种类似json格式的数据,初学者可以先把数据理解为就是json数据)
db.集合名称.insert/save/insertOne(文档)
d.删除文档:
db.集合名称.remove(条件)
e.修改文档:
db.集合名称.update(条件,{操作种类:{文档}})
f.查询文档:
基础查询
查询全部: 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
2.SpringBoot整合MongoDB
(1)创建项目
这里用的阿里创建的项目
(2)导入springboot整合MongoDB的starter坐标
当创建项目时候就已经有这个坐标了。
<!-- 引入mongodb--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>
(3)基础配置
这里只进行简单的配置
无密码:
spring: data: mongodb: uri: mongodb://服务器IP:端口/数据库名
有密码:
spring: data: mongodb: uri: mongodb://用户名:密码@服务器IP:端口/数据库名 # 上方为明确指定某个数据的用户进行连接 # 也可以使用admin 数据库中的用户进行连接 统一到admin 数据库进行认证 # admin 用户认证 url 写法: mongodb://账户:密码%40@ip:端口/数据库名?authSource=admin&authMechanism=SCRAM-SHA-1
例:
spring: data: mongodb: uri: mongodb://localhost/mongotest
(4)使用MongoTemplate
注:使用springboot整合MongoDB的专用客户端接口MongoTemplate来进行操作
实体类:
package com.test; public class Book { private Integer id; private String name; private String type; private String description; public Book(Integer id, String name, String type, String description) { this.id = id; this.name = name; this.type = type; this.description = description; } public Book() { } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } @Override public String toString() { return "Book{" + "id=" + id + ", name='" + name + '\'' + ", type='" + type + '\'' + ", description='" + description + '\'' + '}'; } }
测试类:
@SpringBootTest class Springboot17MongodbApplicationTests { @Autowired private MongoTemplate mongoTemplate; @Test void contextLoads() { Book book = new Book(); book.setId(10); book.setName("testMongoDB"); book.setType("testMongoDB"); book.setDescription("testMongoDB"); mongoTemplate.save(book); } @Test void find(){ List<Book> all = mongoTemplate.findAll(Book.class); System.out.println(all); } }
先支持插入,在执行查询,可以查询到数据(这里有我之前测试的数据),如下: