美文网首页
阿里云-centos7-单机安装部署mongodb--以及在ID

阿里云-centos7-单机安装部署mongodb--以及在ID

作者: georgekaren | 来源:发表于2021-01-13 11:50 被阅读0次

    环境信息

    -购买操作系统选择centos7(7的任何一个版本都可以),如果选错了可以在阿里云管理面板的-更多--云盘和镜像--更换操作系统。


    image.png

    在阿里云购买ecs-购买后机器网卡环境:
    公网IP-8.134.80.143、内网IP-172.30.40.95


    image.png

    设置阿里云端口映射:

    开放1个端口
    27017:mongodb调用端口
    配置入口-->安全组-->配置规则
    点击手动添加,添加27017端口

    开始安装

    mongodb可以下载安装,也可以yum安装,我这里是云服务器,所以直接配置yum 源来安装。
    创建mongodb源

    vim /etc/yum.repos.d/mongodb-org-4.0.repo
    内容:

    [mngodb-org]
    name=MongoDB Repository
    baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/4.0/x86_64/
    gpgcheck=0
    enabled=1
    
    image.png
    更新源

    yum -y update

    image.png

    安装mongodb

    yum -y install mongodb-org


    image.png

    修改mongodb配置文件

    vim /etc/mongod.conf
    修改1处
    bindIp: 0.0.0.0


    image.png

    启动mongodb
    (停止命令:systemctl stop mongod.service)

    systemctl start mongod.service


    image.png

    SpringBoot接入调用

    引用

    pom文件引入

    <!--mongodb-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-mongodb</artifactId>
            </dependency>
    

    配置文件application.yaml 的mongodb参数

    内容(8.134.80.143是阿里云公网IP):

    spring:
      data:
          mongodb:
            host: 8.134.80.143
            port: 27017
            database: mongo
    

    创建mongodb操作和测试类

    entity类-MongoUser:
    内容里面的Document(collection = "user"),代表文档名称,与solr、lucene里面的Document差不多一个概念,也是数据库表的意思和mysql、pg、oracle表名可以同样理解(mongodb这里这个表不需要提前用客户端连接去创建,会自动创建),数据操作与mybaties-plus、spring-jpa、ActiveRecord达到了相同效果,mongodb相对于kafka、redis、memcached而言,会显得更大而全一些,可以当作一个不规则数据存储,也可以当作一个标准数据库使用。

    
    
    import lombok.Data;
    import org.springframework.data.mongodb.core.mapping.Document;
    import org.springframework.data.mongodb.core.mapping.Field;
    
    @Data
    @Document(collection = "user")
    public class MongoUser {
        @Field("userId")
        private String id;
        @Field("userName")
        private String userName;
        @Field("teleNo")
        private String teleNo;
    
    }
    

    业务实现类-MongoService:

    
    
    import lombok.extern.slf4j.Slf4j;
    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.data.mongodb.core.query.Update;
    import org.springframework.stereotype.Service;
    
    @Slf4j
    @Service
    public class MongoService {
        @Autowired
        private MongoTemplate mongoTemplate;
    
    
        public void save(MongoUser user){
            mongoTemplate.save(user);
        }
    
        public MongoUser findByUserName(String userName) {
            Query query=new Query(Criteria.where("userName").is(userName));
            MongoUser mgt =  mongoTemplate.findOne(query , MongoUser.class);
            return mgt;
        }
    
        /**
         * 更新
         */
        public void update(MongoUser user) {
            Query query=new Query(Criteria.where("id").is(user.getId()));
            Update update= new Update().set("userName", user.getUserName()).set("teleNo", user.getTeleNo());
            mongoTemplate.updateFirst(query,update,MongoUser.class);
        }
    
        /**
         * 删除
         */
        public void deleteById(Integer id) {
            Query query=new Query(Criteria.where("id").is(id));
            mongoTemplate.remove(query,MongoUser.class);
        }
    }
    
    

    mongodb的controller测试类-MongoController:

    
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    @Slf4j
    @RestController
    public class MongoController {
    
        @Autowired
        private MongoService mongoService;
    
        @RequestMapping("mongoSave")
        public String save(String userName,String teleNo){
            log.info(userName);
            MongoUser user = new MongoUser();
            long r =  (long) ((Math.random() * 9 + 1) * 100000000);
            String Id =new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date(System.currentTimeMillis()))+r;
            user.setId(Id);
            user.setTeleNo(teleNo);
            user.setUserName(userName);
            mongoService.save(user);
            return "保存成功-用户ID:"+Id;
        }
    
        @RequestMapping("mongoUpdate")
        public String get(String userId,String userName,String teleNo){
            MongoUser user = new MongoUser();
            user.setId(userId);
            user.setTeleNo(teleNo);
            user.setUserName(userName);
            mongoService.update(user);
            return "更新成功-用户ID:"+userId;
        }
    
        @RequestMapping("mongoGet")
        public MongoUser get(String userName){
            MongoUser info =mongoService.findByUserName(userName);
            return info;
        }
    }
    
    image.png

    测试

    启动项目

    测试创建用户数据
    浏览器访问:http://localhost:8080/mongoSave?userName=georgekaren2&teleNo=888888

    image.png

    测试根据用户名查询数据
    浏览器访问:http://localhost:8080/mongoGet?userName=georgekaren2

    image.png

    测试更新用户电话号码
    浏览器访问:http://localhost:8080/mongoUpdate?userName=georgekaren2&userId=20210113112455479751410602&teleNo=999999

    image.png

    再次查询是否更新成功
    浏览器访问:http://localhost:8080/mongoGet?userName=georgekaren2

    image.png

    测试成功,部署调用完成。

    相关文章

      网友评论

          本文标题:阿里云-centos7-单机安装部署mongodb--以及在ID

          本文链接:https://www.haomeiwen.com/subject/bgcuaktx.html