首页 > 数据库 >docker搭建mongodb及基本语法的使用

docker搭建mongodb及基本语法的使用

时间:2023-04-22 14:01:54浏览次数:41  
标签:容器 mongo mongodb 数据库 db 语法 docker

一、介绍:

概述:

主使用docker安装mongodb的方法记录,mongo基本语法记录的整理,大神请绕道!

优势:

1.MongoDB提供高性能的数据持久性。对嵌入式数据模型的支持减少了数据库系统上的IO活动

2.如动态模式、灵活的文档模型,适合json数据存储,适合海量数据存储

使用场景:

1.数据量大,读写操作频繁,数据价值较低,对事务要求不高;

2用于事件记录、内容管理、博客平台,电商,游戏;

3.存储用户信息,朋友圈信息,通过地理位置索引实现附近的人、定位功能等;

4.存储订单信息、订单状态、物流信息,订单状态在运送过程中飞速迭代、以MongoDB内嵌数组的形式来存储,一次查询就能将订单所有的变更查出来;

 

二、搭建mongo:

1.pull镜像

docker pull mongo:4

ps:下载mongo镜像4的版本

 

2.创建映射文件的目录

mkdir -p /usr/local/mongodb/datadb

 

3.加载镜像运行容器

docker run -d \
--name mongodb \
-p 27017:27017 \
-v /usr/local/mongodb/datadb:/data/db \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=admin \
--privileged=true \
--restart always \
mongo:4

 

4.参数说明

-d 后台运行容器
--name mongodb 运行容器名(给容器取个名字)
-p 27017:27017 将容器的27017端口映射到主机的27017端口(宿主机端口:容器端口)
-v /usr/local/mongodb/datadb:/data/db 文件挂载目录(目录映射,好处:1.在宿主机直接共享数据到容器,2.容器删除后宿主机文件依然存在)
-e MONGO_INITDB_ROOT_USERNAME=admin 指定用户名
-e MONGO_INITDB_ROOT_PASSWORD=admin 指定密码
--privileged=true 使得容器内的root拥有真正的root权限
--restart always 跟随docker一起启动,即docker启动时会自动运行容器

 

5.查看mongodb日志

docker logs mongodb

 

 

三、mongo的基本语法&用法

1.通用

#启动mongo
cd /usr/local/mongodb/bin
./mongod -f mongodb.conf  #以配置文件的方式启动MongoDB服务
./mongo或者mongo   #连接mongo数据库

#授权登录
use admin
db.auth('user','password')  #如果不授权就无法插入数据

show dbs;  #查看所有数据库(当数据库无内容或未授权时,不显示库名)
db 或db.getName();      #列出当前数据库
db.stats(); #查看当前数据库状态
db.version(); #查看当前数据库版本
db.getMongo(); #查看当前数据库链接机器
use 数据库名; #选择数据库(若库名存在切换数据库,若库名不存在则创建数据库)
db.数据库.find().count(); #查询库的集合总数
db.name.drop() #删除集合
db.dropDatabase(); #删除当前库
db.createUser({user:"admin",pwd:"password",roles:["root"]});    #创建用户

#设置: db.adminCommand(nameOrDocument) #切换到'admin'数据库,并且运行命令 db.AddUser(username,password[, readOnly=false]) #添加用户 db.auth(usrename,password) #设置数据库连接验证 db.cloneDataBase(fromhost) #从目标服务器克隆一个数据库

 

2.查询

 

标签:容器,mongo,mongodb,数据库,db,语法,docker
From: https://www.cnblogs.com/chen-xia/p/17342954.html

相关文章

  • 教我怎么用docker的network
    Docker提供了一种为容器创建和管理网络以相互通信的方法。创建Docker网络有多种方法,最简单的方法是使用dockernetworkcreate命令。此命令创建一个具有指定名称和驱动程序的新网络。驱动程序指定网络上的容器如何相互通信。最常见的驱动程序是桥接驱动程序,它用于为单个......
  • docker 安装portainer
    portainer定义portainer是一个可视化docker操作工具,可以不用写docker命令实现容器的生命周期进行管理,方便的实现容器的创建、运行、停止、暂停、恢复、删除、复制等。卸载已安装的portainer1.通过dockercontainerls命令查看正在运行的容器。找到portainer对应的names。2.......
  • wsl2+docker跑深度学习
    wsl(ubuntu20.04)+docker安装paddle1.中文显示设置安装语言包sudoaptinstalllanguage-pack-zh-hans设置localesudovi/etc/locale.gen找到zh_CN.UTF-8UTF-8并取消注释,然后保存并退出编译语言sudolocale-gen设置默认语言为中文sudovim/etc/default/locale......
  • Docker镜像操作
    Docker保存镜像1.保存容器更改将容器修改的内容保存为镜像dockercommitappdocker在提交容器更改时可以附加提交信息,方便查询dockercommit-m"firstinitapp"2.镜像命名通过dockertag命令可以对未命名的镜像命名,也可以修改已有镜像的命名dockertag容器idapp:1......
  • docker mysql 错误跟innodb有关
     错误截图 dockerps-a查看所有容器  容器开启失败,进入也失败 原因两个数据的文件冲突了,将你需要启动的那个数据库里面的这个干掉(即删除这两个文件)解决方式:备份(或者移除)两个文件ib_logfile0ib_logfile1 查找文件所在目录find/-nameib_logfile0......
  • 2、Pipeline语法及使用自定义工具的Maven工程
    Pipeline语法声明式pipeline的结构pipeline的定义有一个明确的、必须遵循的结构,它由一些directive(指令)和section(配置段)组成,每一个section又可包含其它的section、directive和step(执行步骤),以及一些condition(执行条件)的定义;◼Section:用于将那些在某个时间点需要一同运行的条目(i......
  • 虚拟机可以访问docker,主机访问不了docker
    这种情况通常是由于Docker绑定在本地虚拟网络接口上,而不是本地网络接口上造成的。您可以尝试将Docker绑定到本地网络接口,使主机能够访问Docker。在Linux主机上,您可以通过在/etc/docker/daemon.json配置文件中添加以下内容,将Docker绑定到本地网络接口:{"hosts":["unix:///v......
  • 开心档之C++ 基本语法
    C++基本语法C++程序可以定义为对象的集合,这些对象通过调用彼此的方法进行交互。现在让我们简要地看一下什么是类、对象,方法、即时变量。对象- 对象具有状态和行为。例如:一只狗的状态-颜色、名称、品种,行为-摇动、叫唤、吃。对象是类的实例。类- 类可以定义为描述对......
  • Java基础语法(一):Java程序的结构
    前言Java是一种流行的面向对象编程语言,可以用于开发各种应用程序,从桌面应用程序到企业级Web应用程序和移动应用程序。编写Java程序时,良好的程序结构是至关重要的,因为它可以帮助程序员更好地组织代码并使其易于维护和扩展。本文将介绍Java程序的结构,包括程序组成部分、代码结构和组......
  • docker安装rabbitMq
    rabbitMQ是一款开源的高性能消息中间件,最近项目要使用,于是使用docker搭建,快速方便一、获取镜像使用dockerpulldocker.io/rabbitmq:3.8-management 拉取镜像我们选择了STARS数最多的官方镜像,此处需要注意,默认rabbitmq镜像是不带web端管理插件的,所以指定了镜像tag为3.8-manage......