docker安装mongoDB,Navicat for MongoDB使用

17 篇文章 0 订阅
16 篇文章 0 订阅

因为本文是入门文档,所以废话较多,可以跳过直接看后面流程。

web开发最常用的数据库是关系型数据库,代表性的就是mysql和oracle。所谓关系型数据库,其实就是每个表为一个数据实体,在每个数据实体之间建立关系,而关系型数据库的范式就是对这个实体解耦程度的要求。可以看出来了,关系型数据库其实和面向对象的开发思想一脉相承,这种开发方式既和人的思维更接近,也更能发挥计算机的算力,从而更有效率的迭代出新的版本。

然而随着互联网的发展,互联网用户量和线上活跃数出现了爆发式的增长,大数据时代随之到来。传统的关系型数据库在某些方面变得力不从心,从java开发的角度来说,代码的初始就是根据需求进行表设计,然后通过表映射出实体对象,具体的业务逻辑由操作对象来实现,一旦表的字段(列)和实体对象不一致代码就会报错。而实际工作中,往往总会有变化需要新增或者修改表的列,也许可以通过设计冗余字段或者加班来解决这样的问题,但当面对大数据量高效率的业务场景时,以B+树遍历和序列化传输的传统方式导致的高耗低能就不能被忍受了。

俗话说,方法总比困难多,于是出现了各式各样的NoSQL产品,比如我们耳熟能详的redis,hbase,mongoDB,甚至是ElasticSearch。这里说明三点,一:NoSQL不是说没有SQL,而是Not only SQL,其实是SQL的增强,可以理解为SQL++。二:关系型数据库仍然占主导地位,具有不可替代的优越性。NoSQL只是在某些方面有独到的地方,是作为关系型数据库的补充。三:虽然都是NoSQL,但这些NoSQL的实现原理和侧重点都不同,简单来说redis和levelDB这种是以K/V结构存储数据数据,levelDB在持久化方面比较优秀,可以作为redis的补充。Hbase是面向列的数据库,在随机读写方面具有传统关系型数据库不可比拟的优势。MongoDb是文档型数据库,说是文档其实就是存的json,避免了以前前端请求一个简单的数据,后端多次访问数据库,数据格式转过来转过去。

下面进入正题。

一:客户端访问工具安装

windows端的mongoDB软件很多,但为了避免bug或者一些其他客观因素导致走弯路,这里还是推荐知名度比较高的navicat

Navicat for MongoDB下载地址:http://www.ddooo.com/softdown/130308.htm

呃,装软件没什么好说的,安装包里面有注册机,照着提示做就行,完成界面如下

二:mongo安装和运行

2.1mongo下载安装

docker search mongo :  docker 搜索mongo镜像

docker pull mongo :  下载镜像

docker images :   查看下载的镜像

docker run -d -p 27017:27017 --name mongo mongo:latest   简单启动mongoDB,容器命名为mongo

docker exec -it mongo /bin/bash    进入mongo容器命令操作模式,查看镜像容器的目录结构

此时可以使用navicat for mongoDB访问了。

2.2使用docker compose安装mongo

docker network create --driver overlay app        :创建一个名为app、驱动为overlay、作用域为swarm的网络

编辑dockercompose文件如下

version: "3.1"
  
services:

  mongo:
    image: docker.io/mongo:latest
    restart: always
    ports:
      - 27017:27017
    environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: 1234
    volumes:
      - /home:/root/docker/mongo/data
      - /etc/localtime:/root/docker/mongo/etc/localtime
    networks:
      - app
      
networks:
  app:
    external:
      name: app

其中容易出错的地方就是volumes挂载的目录,确保此处填写的目录存在,可参考之前的docker exec -it进入容器查看。

将yml文件上传到到linux

docker stack deploy -c mongo.yml app : 通过stack方式启动mongo服务

docker stack ps app  :  查看服务部署情况

如下图红框处

三:windows操作

使用navicat for MongoDB连接,如图

可以爽了。

 

mongo语法还是有点意思的,不过因为暂时用不着就不深追了。简单介绍下,mongoDB从高到底级别是:数据库-集合-文档

一般都以db开头,db.集合名/文档名.操作,如以下示例:

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值