Docker中部署MongoDB数据库详细介绍(快速搭建)

10 篇文章 1 订阅
2 篇文章 4 订阅

1.拉取镜像

docker pull mongo:4.0.3

2.创建容器

docker create --name mongodb --restart=always -p 27017:27017 -v mongodb:/data/db mongo:4.0.3

3.启动容器

docker start mongodb

4.进入容器

 docker exec -it mongodb /bin/bash

5.使用MongoDB客户端进行操作

mongo
	 
	 > show dbs				#查询所有的数据库
	 
	 > use testdb			#通过use关键字切换数据库
#注:在MongoDB中,数据库是自动创建的,通过use切换到新数据库中,进行插入数据即可自动创建数据库
	 
	 > show tables			#查看表(tables和collections一样)
	 
	 > db.user.drop()		#删除集合(表)
#注:如果成功删除选定集合,则 drop() 方法返回 true,否则返回 false> use testdb 			#先切换到要删除的数据中
	 > db.dropDatabase()	#删除数据库(需要先切换到要删除的数据库) 

6.数据库以及表的操作

插入数据(insert和save一样)

db.user.insert({id:1,name:'zhangsan'}) 

db.user.save({id:1,name:'zhangsan'}) 

更新数据(更新不存在的数据,会新增字段))

 db.user.update({id:1},{$set:{age:22}},true)
 
		# 参考说明:
		#	db.collection.update(
		#	   <query>,
		#	   <update>,
		#	   [
		#		 upsert: <boolean>,
		#		 multi: <boolean>,
		#		 writeConcern: <document>
		#	   ]
		#	)
				 
		# query : update的查询条件,类似sql update查询内where后面的。
		# update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
		# upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
		# multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
		# writeConcern :可选,抛出异常的级别。

删除数据

db.user.remove({age:25})		#删除所有符合条件的数据
db.user.remove({age:22},true)	#删除1条数据
db.user.remove					#删除所有数据
		 
#为了简化操作,官方推荐使用deleteOne()deleteMany()进行删除数据操作。
db.user.deleteOne({id:1})
db.user.deleteMany({})  #删除所有数据
		 
		# 参考说明:
		#	db.collection.remove(
		#	   <query>,
		#	   {
		#		 justOne: <boolean>,
		#		 writeConcern: <document>
		#	   }
		#	)
				 
		# query :(可选)删除的文档的条件。
		# justOne : (可选)如果设为 true1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
		# writeConcern :(可选)抛出异常的级别。

查询数据

db.user.find()  #查询全部数据
db.user.find({},{id:1,username:1})  #只查询id与username字段
db.user.find().count()  #查询数据条数
db.user.find({id:1}) #查询id为1的数据
db.user.find({age:{$lte:21}}) #查询小于等于21的数据
db.user.find({age:{$lte:21}, id:{$gte:2}}) #and查询,age小于等于21并且id大于等于2
db.user.find({$or:[{id:1},{id:2}]}) #查询id=1 or id=2

#分页查询:Skip()跳过几条,limit()查询条数
db.user.find().limit(2).skip(1)  #跳过1条数据,查询2条数据

db.user.find().sort({id:-1}) #按照age倒序排序,-1为倒序,1为正序

		# 参考说明:
		# db.user.find([query],[fields])
				 
		# query :可选,使用查询操作符指定查询条件
		# fields :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值,只需省略该参数即可(默认省略)。

7.索引

#查看索引
db.user.getIndexes()
#创建索引
db.user.createIndex({'age':1})
#删除索引
db.user.dropIndex("age_1")
#删除除了_id之外的索引
db.user.dropIndexes()
#创建联合索引
db.user.createIndex({'age':1, 'id':-1})
#查看索引大小,单位:字节
db.user.totalIndexSize()

补充:docker的安装与操作请参考:
https://blog.csdn.net/a1120467800/article/details/109957446

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Docker,有很多常用的镜像可以使用。这些镜像可以用于快速构建和部署各种应用程序。以下是一些常用的Docker镜像的例子: 1. 基础镜像:基础镜像是构建其他镜像的基础。常见的基础镜像包括Ubuntu、Alpine和CentOS等。 2. Nginx镜像:Nginx是一个流行的Web服务器和反向代理服务器。使用Nginx镜像可以快速部署静态网站或者将请求转发到其他服务。 3. MySQL镜像:MySQL是一个常用的关系型数据库管理系统。使用MySQL镜像可以方便地搭建和管理MySQL数据库。 4. Redis镜像:Redis是一个高性能的内存数据库。使用Redis镜像可以快速搭建和管理Redis实例。 5. MongoDB镜像:MongoDB是一个NoSQL数据库。使用MongoDB镜像可以方便地搭建和管理MongoDB数据库。 6. Node.js镜像:Node.js是一个基于Chrome V8引擎的JavaScript运行环境。使用Node.js镜像可以方便地构建和运行Node.js应用程序。 这些镜像可以在Docker Hub上进行搜索和下载。可以根据自己的需求选择适合的镜像,并根据镜像的文档进行使用和配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [常用的Docker镜像](https://blog.csdn.net/u014038143/article/details/106588483)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值