前言
MongoDB 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:
- MongoDB是一个独立的服务器。
- 它是基于文档的,而不是基于表格的。
- 它是非结构化的。
- 它具有强大的主流开发语言支持,如C#、C++、Java、PHP、Perl、Python、Ruby。
- 可扩展性。
- 使用高效的二进制数据存储,包括大型对象(如视频等)。
- 支持完全索引,包含内部对象。
- 面向集合存储,易存储对象类型的数据。
一、mongoDB 安装
具体安装过程可参考MongoDB安装。
二、pom.xml文件
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
三、配置文件
这里配置mongoDB的地址和数据库信息。
spring:
data:
mongodb:
host: 127.0.0.1
port: 27017
database: test
四、实体类
public class User {
private long id;
private String username;
private String password;
public User(long id, String username, String password) {
this.id = id;
this.username = username;
this.password = password;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
五、数据操作层
接口继承MongoRepository
public interface UserRepository extends MongoRepository<User, Long> {
}
六、controller类
@RestController
public class UserController {
@Autowired
private UserRepository userRepository;
@GetMapping("save")
public String save() {
User user = new User(System.currentTimeMillis(), "用户" + System.currentTimeMillis(), "123");
userRepository.save(user);
return "success";
}
@GetMapping("getUserList")
public List<User> getUserList() {
List<User> userList = userRepository.findAll();
return userList;
}
@GetMapping("delete")
public String delete(Long id) {
userRepository.deleteById(id);
return "success";
}
@GetMapping("update")
public String update(Long id, String username, String password) {
User user = new User(id, username, password);
userRepository.save(user);
return "success";
}
}
七、测试
-
访问save方法,并查看数据。
use test:使用test数据库。
db.user.find(): 查看user文档。
image.png