一、MongoDB下载
话不多说,直接上链接,32位和64位都有,自己看情况下载。
MongoDB下载链接:https://www.mongodb.com/download-center/community
二、安装MongoDB
- 下载好MongoDB,然后双击.msi文件。
- 点击next
- 选择custom
- 选择安装目录
- 配置名称、数据存放文件夹、日志存放文件
- 点击next ,取消选择Install MongoDB Compass(这里重点强调取消选择,否则你会后悔的!!!)
- 点击install安装
安装完成后需要在data文件夹中创建db文件夹
配置环境变量:此电脑=>>右击点击属性=>>选择高级系统设置=>>点击环境变量=>>选择path=>>点击编辑=>>然后新建=>选择bin目录路径=>>确定
配置存储路径并打开mongo服务
注意:必须在自己电脑根目录运行,否则会报错!!!
上个shell窗口不能关闭,检查是否安装成功,成功会显示下面的信息
三、配置Mongo服务
让mongo服务自己启动,不用我们认为去控制,这里我们需要在log文件夹下面创建一个db.log文件
配置服务(在Mongo文件夹中创建mongodb.config文件)
然后在bin目录打开shell窗口输入==>mongod --config “E:\Surroundings\DB\Mongo\mongodb.config” --install --serviceName “MongoDB”
重启mongo服务,重新打开cmd输入net start MongoDB
以上是Mongodb的安装过程 到这里安装完成,接下来讲讲如何设置用户名密码
三、设置用户名密码
在mongodb刚装好后,用官网自带的客户端MongoDB Compass一键connect链接后,点击界面最下方 “>MONGOSH”,输入此命令,下同。
1.admin表创建一个admin user并设置密码并给userAdminAnyDatabase的权限;
use admin;
db.createUser({user: 'admin', pwd: '123456', roles: [{role: 'userAdminAnyDatabase', db: 'admin'}]});
2.业务表创建一个user并设置密码并给dbAdmin和dbOwner的权限;
use my_db;
db.createUser({user: 'root', pwd: '123456', roles: [{role: 'dbAdmin', db: 'hv'}, {role: 'dbOwner', db: 'hv'}]});
3.打开mongod.cfg文件(不同版本在不同路径下,3.4.5版本的在与bin同级的文件夹下, 4.2版本在bin文件夹里面),在最末尾添加上:
security:
authorization: enabled
4.任务管理器->services服务,找到MongoDB服务,右键restart。
5.Studio 3T创建一个连接,Authentication那里选择Basic, 输入用户名密码和业务表名,就可以成功连接。如果不输入用户名密码,则可以连接localhost:27017但是看不到任何数据库表。
或者采取在MongoDB Compass用url方式链接:
mongodb://root:123456@localhost:27017/hv
注意:如果不给admin表设置账号,则就算给业务表设置账号密码也没用,没有账号密码一样可以访问。
四、整合springboot
1.引入依赖
<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.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
2.yml文件
server:
port: 9443
spring:
data:
mongodb:
uri: "mongodb://root:123456@localhost:27017/hv"
application: jkxt
3.引用MongoTemplate
增
@Test
public void createMg(){
Student student=new Student();
student.setAge(1);
student.setName("张三");
mongoTemplate.save(student);
System.out.println("查询MG的数据:"+student);
}
查
@Test
public void findMg(){
List<Student> studentList = mongoTemplate.findAll(Student.class);
}
带条件查
@Test
public void findList(){
Query query=new Query(Criteria.where("name").is("张三").and("age").is(91));
List<Student> tList = mongoTemplate.find(query, Student.class);
System.out.println("条件查询:"+tList);
}
模糊查询
@Test
public void findLikeList(){
String likeName="o";//自定义的常量
String reges=String.format("%s%s%s", "^.*", likeName, ".*$");//匹配规则
Pattern pattern=Pattern.compile(reges,Pattern.CASE_INSENSITIVE);//正则匹配规则--pattern的常量
Query query =new Query(Criteria.where("name").regex(pattern));
List<Student> studentList=mongoTemplate.find(query,Student.class);
for (Student s:studentList) {
System.out.println("模糊查询:"+s);
}
}
修改
public void findLikeList(LoginLog log){
Query query =new Query(Criteria.where("phone").is("123456789"));
Update update=new Update();
update.set("cid",log.getCid());
update.set("areaCode",log.getAreaCode());
update.set("areaName",log.getAreaName());
mongoTemplate.upsert(query,update,User.class);
}
删除
@Test
public void delStudent(){
Query query =new Query(Criteria.where("_id").is("6204969434c3ed66b12eb658"));
DeleteResult result=mongoTemplate.remove(query,Student.class);
long deletedCount = result.getDeletedCount();
//=1成功 =0失败
System.out.println("记录数:"+deletedCount);
}