【运维笔记】MongoDB

MongoDB简介

是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。
	
/data/db 是 MongoDB 默认的启动的数据库路径(dbpath)

mongod	## 服务进程

mongo	## 后台管理 Shell

MongoDB 概念解析

SQL术语/概念 	MongoDB术语/概念 	解释/说明
	database 	database 			数据库
	table 		collection 			数据库表/集合
	row 		document 			数据记录行/文档
	column 		field 				数据字段/域
	index 		index 				索引
	table 		joins 	  			表连接,MongoDB不支持
primary key 	primary key 		主键,MongoDB自动将_id字段设置为主键

MongoDB - 连接

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
	mongodb:// 这是固定的格式,必须要指定。
			## mongodb://root:root@localhost:27017

常用命令

## 数据库
	use database_name	如果数据库不存在,则创建数据库
	db					查看当前连接的数据库
	show dbs			查看所有数据库
	db.dropDatabase()	删除当前数据库,默认为 test


## 集合/表
	show tables/show collections						##查看所有表/集合
	db.createCollection(collection_name, options)		##创建集合
	db.collection_name.drop()							##删除集合


## 文档/行
	db.collection_name.find()						##查看集合所有文档		 pretty()以易读的方式来读取数据
	db.collection_name.insertOne()					##集合插入一行文档
	db.collection_name.insertMan()					##集合插入多行文档
		可以将数据定义成一个变量,插入一个变量


## 更新文档
	MongoDB 使用 update() 和 save() 方法来更新集合中的文档。
	update() 方法用于更新已存在的文档。
		db.collection_name.updateOne(	##只更新一行		updataMany更新多行
		   <query>,						##查询条件,类似sql update查询内where后面的。
		   <update>,					##一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
		   {
			 upsert: <boolean>,			#如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
			 multi: <boolean>,			#默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
			 writeConcern: <document>	#抛出异常的级别。
		   }
		)	
				
	

		save() 方法通过传入的文档来替换已有文档。语法格式如下:
			db.collection_name.save(
			   <document>,				#文档数据。
			   {
				 writeConcern: <document>
			   }
			)


## 删除文档
	db.collection.deleteOne(	##删除一行	deleteMany删除多行	
	   <query>,
	   {
		 writeConcern: <document>
	   }
	)


## MongoDB 与 RDBMS Where 语句比较-####
	等于 	{<key>:<value>}
	小于 	{<key>:{$lt:<value>}}
	小于或等于 	{<key>:{$lte:<value>}} 	
	大于 	{<key>:{$gt:<value>}}
	大于或等于 	{<key>:{$gte:<value>}} 	
	不等于 	{<key>:{$ne:<value>}}



## AND 和 OR
MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件。
	db.collection_name.find({key1:value1, key2:value2})

MongoDB OR 条件
	db.collection_name.find(
	   {
		  $or: [
			 {key1: value1}, {key2:value2}
		  ]
	   }
	)

猜你喜欢

转载自blog.csdn.net/wuguifa/article/details/88327386