简介
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
MongoDB 是由 C++ 编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,它将数据存储为一个文档,数据结构由键值 (key=>value) 对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组,非常灵活。
下载安装
从官网或者是国内镜像网站下载tar.gz文件,然后进行解压。并设置好相应的文件夹和配置文件。
[root@zookeeper mongodb]# tar -zxvf mongodb-linux-x86_64-4.0.0.tgz
mongodb-linux-x86_64-4.0.0/README
mongodb-linux-x86_64-4.0.0/THIRD-PARTY-NOTICES
mongodb-linux-x86_64-4.0.0/MPL-2
mongodb-linux-x86_64-4.0.0/GNU-AGPL-3.0
mongodb-linux-x86_64-4.0.0/LICENSE-Community.txt
mongodb-linux-x86_64-4.0.0/bin/mongodump
mongodb-linux-x86_64-4.0.0/bin/mongorestore
mongodb-linux-x86_64-4.0.0/bin/mongoexport
mongodb-linux-x86_64-4.0.0/bin/mongoimport
mongodb-linux-x86_64-4.0.0/bin/mongostat
mongodb-linux-x86_64-4.0.0/bin/mongotop
mongodb-linux-x86_64-4.0.0/bin/bsondump
mongodb-linux-x86_64-4.0.0/bin/mongofiles
mongodb-linux-x86_64-4.0.0/bin/mongoreplay
mongodb-linux-x86_64-4.0.0/bin/mongod
mongodb-linux-x86_64-4.0.0/bin/mongos
mongodb-linux-x86_64-4.0.0/bin/mongo
mongodb-linux-x86_64-4.0.0/bin/install_compass
[root@zookeeper mongodb]# ls
mongodb-linux-x86_64-4.0.0 mongodb-linux-x86_64-4.0.0.tgz
[root@zookeeper mongodb]# cd mongodb-linux-x86_64-4.0.0
[root@zookeeper mongodb-linux-x86_64-4.0.0]# ls
bin GNU-AGPL-3.0 LICENSE-Community.txt MPL-2 README THIRD-PARTY-NOTICES
[root@zookeeper mongodb-linux-x86_64-4.0.0]# mkdir -p ./data/db
[root@zookeeper mongodb-linux-x86_64-4.0.0]# mkdir -p ./logs
[root@zookeeper mongodb-linux-x86_64-4.0.0]# touch ./logs/mongodb.log
新建配置文件
vim mongodb.conf
内容如下:
port=27017
#db目录
dbpath=/usr/local/mongodb/mongodb-linux-x86_64-4.0.0/data/db
#日志目录
logpath=/usr/local/mongodb/mongodb-linux-x86_64-4.0.0/logs/mongodb.log
#后台
fork=true
#日志输出
logappend=true
#允许远程IP连接
bind_ip=0.0.0.0
启动:
[root@zookeeper mongodb-linux-x86_64-4.0.0]# ./bin/mongod --config mongodb.conf
需要注意,防火墙对端口进行开放
Spring Boot整合MongoDB
项目源码
1.导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
2.修改配置
spring.data.mongodb.host=192.168.1.106
spring.data.mongodb.port=27017
spring.data.mongodb.database=test
3.创建示例
(1)创建实体类
public class User {
@Id
private String id;
private String userId;
private String name;
private String password;
public User() {
}
public User(String userId, String name, String password) {
this.userId = userId;
this.name = name;
this.password = password;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"id='" + id + '\'' +
", userId='" + userId + '\'' +
", name='" + name + '\'' +
", password='" + password + '\'' +
'}';
}
}
2.创建DAO层
和 JPA 一样,SpringBoot 同样为开发者准备了一套 Repository ,只需要继承 MongoRepository 传入实体类型以及主键类型即可。
@Repository
public interface UserRepository extends MongoRepository<User, String> {
}
3.创建service及其实现
public interface UserService {
public void add(User user);
List<User> find();
}
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserRepository userRepository;
@Override
public void add(User user) {
userRepository.save(user);
}
@Override
public List<User> find() {
return userRepository.findAll();
}
}
3.创建接口测试
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/add")
public void save(@RequestBody User user){
userService.add(user);
}
@GetMapping("/findAll")
public String findAll(){
for (User u : userService.find()){
System.out.println(u);
}
return userService.find().toString();
}
}