项目总结52: Linux安装mongodb和Springboot集成mongodb

Mongodb简介

  官网介绍:

MongoDB is a general purpose, document-based, distributed database built for modern application developers and for the cloud era. No database makes you more productive. 

MongoDB是一个通用的、基于文档的分布式数据库,它为现代应用程序开发人员和云时代而构建的。无数据库能让你更有效率。

   特点:

MongoDB是一个面向文档的数据库,它并不是关系型数据库,直接存取BSON,这意味着MongoDB更加灵活,因为可以在文档中直接插入数组之类的复杂数据类型,并且文档的key和value不是固定的数据类型和大小,所以开发者在使用MongoDB时无须预定义关系型数据库中的”表”等数据库对象,设计数据库将变得非常方便,可以大大地提升开发进度。MongoDB不支持事务操作,所以需要用到事务的应用建议不用MongoDB,另外MongoDB目前不支持join操作,需要复杂查询的应用也不建议使用MongoDB

Linux安装mongodb

参考博客:https://blog.csdn.net/E_Eric12138/article/details/89606950

  •  第一步:去官网下载mongodb安装包,我选择的是规格如下,可以直接下载并传到Linux服务器,也可以使用指令直接在Linux上在线下载;

 

 

 

下载指令
wget --no-check-certificate https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.2.tgz

 

  • 第二步: 解压安装包
#解压RGZ文件值当前文件夹
tar -zxvf mongodb-linux-x86_64-rhel70-4.2.2.tgz 
#将解压后的文件移动到/usr/local/mongodb目录下
mv mongodb-linux-x86_64-rhel70-4.2.2 /usr/local/mongodb

 

 

  •  第三步:创建配置文件

先准备配置需要的文件

#进入/usr/local/mongodb/目录下
cd /usr/local/mongodb/;
#创建data目录
mkdir data;
#创建logs目录,并在logs目录下新建mongodb.log文件
mkdir logs;
cd logs; 
touch mongodb.log; 
#回到上级目录,创建etc目录,并在logs目录下新建mongodb.conf文件
cd ../;
mkdir etc;
cd etc; 
touch mongodb.conf

 

 

 再在mongodb.conf中加入如下配置

#数据库路径
dbpath=/usr/local/mongodb/data
#日志输出文件路径
logpath=/usr/local/mongodb/logs/mongodb.log
#错误日志采用追加模式
logappend=true
#启用日志文件,默认启用
journal=true
#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet=true
#端口号 默认为27017
port=27017
#允许远程访问
bind_ip=0.0.0.0
#开启子进程
fork=true
#开启认证,必选先添加用户
#auth=true

 

  • 第四步:启动mongodb

启动mongodb服务

#启动日志
./mongod --config /usr/local/mongodb/etc/mongodb.conf

 

 

 

 打开mongodb客户端,添加root超级用户

#打开mongodb客户端
[root@VM_0_4_centos bin]# ./mongo
#使用默认admin数据库
> use admin
#对admin数据库创建root账号,密码也是root
> db.createUser({user:"root",pwd:"root",roles:[{role:"root",db:"admin"}]})

 

 

 关闭mongodb服务,并重新启动,否则root账号无法生效

#mongodb客户端状态下,关闭服务
> db.shutdownServer()
#重新启动
[root@VM_0_4_centos bin]# ./mongod --config /usr/local/mongodb/etc/mongodb.conf 

 

 

Springboot集成mongodb

  • 第一步:POM文件中引入jar包
       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>
  • 第二步:设计保存到mongodb的数据格式实体类 
package com.hs.web.entity.mongodb;

import com.hs.api.commom.bizservice.thirdparty.express100.LastResultBean;
import io.swagger.annotations.ApiModel;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;


import java.sql.Timestamp;
import java.util.Date;

/* *
 *@Description:
 *@Author:TYJ
 *@Date: create in  2020/1/13 15:04
 */
@Document //标明由mongo来维护该表
@ApiModel("mongodb 快递100返回数据")
public class Express100NotifyVO {

    @Id //自增主键
    private String id;

    @Indexed //索引
    private Long orderId;

    private String orderCode;
    private String logisticsNum;
    private String jsonData;
    private Date dataTime;

    ......省略getter和setter
}
  • 第三步:设计service层,实现数据的保存和获取
import com.hs.web.entity.mongodb.Express100NotifyVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component;

import java.util.List;

@Component
public class MongodbBizService {

   @Autowired
   private MongoTemplate mongoTemplate;//MongoTemplate类,和RedisTemplate类似,对mongodb数据库的XRUD操作进行封装

    //1-将快递100的数据保存到mongodb
    public void saveExpress100Data(Express100NotifyVO data){

        mongoTemplate.save(data);//保存数据
    }

    //2-读取快递100数据
    public List<Express100NotifyVO> listExpress100Data(Long orderId){
        Query query = new Query();//实例化一个查询条件
        query.addCriteria(Criteria.where("orderId").is(orderId));//封装查询条件-根据orderId查询数据
        List<Express100NotifyVO> dataList = mongoTemplate.find(query, Express100NotifyVO.class);//mongoTemplate.find查询mongodb数据据
        return dataList;
    }
}

 

  • 第四步:在application.properties文件中进行配置
#mongodb://username:password@ip:port/database
spring.data.mongodb.uri=mongodb://xg:xg1234@120.26.XX.XX:27017/xg

 

  • 第五步:写controller,正常调用service层方法;

 

 

本人遇到的坑:

1-本地测试完功能后,将mongodb用到的jar上传到Linux,没有把bson-3.4.3.jar上传到服务器,导致启动的时候一直无法加载decoder方法

posted on 2020-01-13 21:04  我不吃番茄  阅读(298)  评论(0编辑  收藏  举报