文章目录
一、下载安装
官网下载:https://www.mongodb.com/try/download/enterprise
1.Docker安装
拉取镜像:
docker pull mongo
创建挂在目录:
mkdir -p /root/mongo/{data,conf,backup}
运行容器:
docker run --name=mongodb --restart=always -p 27017:27017 -d -v /root/mongo/data:/data/db -v /root/mongo/backup:/data/backup -v /root/mongo/conf:/data/configdb mongo --auth
进入容器:
docker exec -it mongodb mongo admin
添加账号:
// 全部权限的账户
db.createUser({user:'admin',pwd:'你的密码',roles:[{role:'root',db:'admin'}],})
db.auth('admin','密码')
#读取权限的账户
db.createUser({ user: 'test', pwd: '你的密码', roles: [ { role: "readWrite", db: "elec_safe" } ] });
db.auth("test","密码");
二、数据库工具连接
选择MongoDB数据库连接:
填入服务器地址和端口,选择验证为Password,并输入刚刚设置的账号密码:
三、Java中MongoDB的基本使用
1.环境配置
(1).导包
使用spring中自带的包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
(2).配置yml
spring:
data:
mongodb:
# mongodb://账号:密码@ip地址:端口号
uri: mongodb://root:123456@116.65.186.86:27017
database: school
(3).启动类添加扫描器
启动类上添加 @EnableMongoRepositories 注解
2.代码编写
(1).创建实体类MO类:
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
import java.util.Date;
import java.util.Map;
@Data
@Document("Message") // 与库中的集合对应
public class MessageMO {
@Id
private String id; // 主键id
@Field("fromUserId")// 与库中的域对应
private String fromUserId; // 消息发送用户id
@Field("fromNickname")
private String fromNickname; // 消息发送用户名字
@Field("fromFace")
private String fromFace; // 消息发送用户头像
@Field("toUserId")
private String toUserId; // 接收消息用户id
@Field("msgType")
private Integer msgType; // 消息类型
@Field("msgContent")
private Map msgContent; // 消息内容
@Field("createTime")
private Date createTime; // 消息创建时间
}
(2).创建Repository接口(类似Mapper接口)
import com.qinxuan.mo.MessageMO;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface MessageRepository extends MongoRepository<MessageMO,String> {
}
(3).增删改查(使用)
增(如果数据库中没有该集合会自动创建)
@Autowired
private MessageRepository messageRepository;
@Test
void contextLoads() {
MessageMO mo =new MessageMO();
mo.setCreateTime(new Date());
mo.setFromFace("xxxx");
mo.setFromNickname("吾听安");
mo.setFromUserId("1");
mo.setToUserId("2");
mo.setMsgContent(new HashMap());
mo.setMsgType(2);
messageRepository.save(mo);
}