一、MongoDB官方下载
官方地址:https://www.mongodb.com/try/download/community
我的系统CentOS7.6,所以我下载了7.0版本MongoDB,版本与系统版本要匹配上即可。
二、安装MongoDB
1、在home目录下创建mongoDB目录:
#cd /home
#mkdir mongoDB
2、将mongoDB压缩包解压到mongoDB目录下
#tar -zxvf mongodb-linux-x86_64-rhel70-4.4.6.tgz -C /home/mongoDB
3、解压后的压缩包重命名为mongodbserver
#cd /home/mongoDB
#mv mongodb-linux-x86_64-rhel70-4.4.6.tgz mongodbserver
4、创建数据库文件夹、日志文件夹及日志文件
#cd /home/mongoDB/mongodbserver
#mkdir data
#mkdir logs
#cd /logs
#touch mongodb.log
5、创建启动配置文件mongodb.conf
#vim /etc/mongodb.conf
#指定数据库路径
dbpath=/home/mongoDB/mongodbserver/data
#指定MongoDB日志文件
logpath=/home/mongoDB/mongodbserver/logs/mongodb.log
# 使用追加的方式写日志
logappend=true
#端口号
port=27017
#方便外网访问
bind_ip=0.0.0.0
fork=true
# 以守护进程的方式运行MongoDB,创建服务器进程
auth=true
6、配置环境变量
#vim /etc/profile
在文件底部添加以下命令
export PATH=/home/mongoDB/mongodbserver/bin:$PATH
重启profile
#source /etc/profile
7、启动mongoDB
#cd /home/mongoDB/mongodbserver/bin
# ./mongod -f /etc/mongodb.conf
8、浏览器访问mongodb
http://192.168.***.**:27017,出现以下的提示语,说明启动成功。
三、在控制面板操作mongodb
1、进入mongodb页面
#cd /home/mongoDB/mongodbserber/bin
#./mongo
>use admin --使用admin数据库
>db.createUser( {user: "username",pwd: "123456",roles: [ { role: "root", db: "admin" } ]}); --给admin创建用户和密码,并赋予权限
>db.auth("username","123456") --使用admin数据库并进行验证,如果不验证,是做不了任何操作的。
四、Java连接mongoDB及基本操作 ,springboot集成mongoDB
1、yml 配置
donghua: mongodb: mongoUrl: mongodb://username:pwd@localhost:27017 #username:admin数据库的用户名;pwd:密码 dataBase: admin
2、mongo获取配置值并初始化
@Component @ConfigurationProperties(prefix = "donghua.mongodb") @Data @Slf4j public class MongoDBConfig { private String mongoUrl;//mongo访问路径 private String dataBase;//mongo数据库 /* MongoTemplate 初始化 */ public @Bean MongoTemplate mongoTemplate() { return new MongoTemplate(new SimpleMongoClientDbFactory(MongoClients.create(mongoUrl), dataBase)); } }
3、mongo的基本操作
/*
*测试类
*/
@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest(classes = MainApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class MainApplicationTests {
//引用MongoTemplate工具
@Resource
private MongoTemplate mongoTemplate;
// mongo新增数据,实体类名称将作为表名。
@Test
public void addMongo() {
MonitorRecordParam record = new MonitorRecordParam();
record.setTreeId(1);
record.setMonitorJson("[{\"岗位\":\"问问\"},{\"姓名\":\"张三\"}]");
mongoTemplate.insert(record);
}
//简单多条件查询查询
@Test
public void queryMongo(){
Query query = new Query();
query.addCriteria(Criteria.where("treeId").is(15).and("_id").is("dddddd"));
MonitorRecordParam mo = mongoTemplate.findOne(query, MonitorRecordParam.class);
log.info("数据:"+mo.getMonitorJson());
}
//分页查询
@Test
public void pageQueryMongo(){
Query query = new Query();
//分页
// 从那条记录开始
query.skip(0);
// 取多少条记录
query.limit(2);
//根据创建时间降序
query.with(Sort.by(Sort.Direction.DESC, "treeId"));
List<MonitorRecordParam> list = mongoTemplate.find(query, MonitorRecordParam.class);
log.info("数据:"+ list.toString());
}
//更新
@Test
public void updateMongo(){
Query query = new Query();
query.addCriteria(Criteria.where("treeId").is(15));
Update update = new Update();
update.set("monitorJson","{turang:23;yanglizi:90}");
mongoTemplate.updateMulti(query,update,MonitorRecordParam.class);
}
//删除
@Test
public void removeMongo(){
Query query = new Query();
query.addCriteria(Criteria.where("treeId").is(15));
mongoTemplate.remove(query,MonitorRecordParam.class);
}
}