MongoDB数据库常用知识点

MongoDB知识点:

概念:

	1、 集合(表)
	2、 文档(记录,一条数据)

和MySQL对比图:

	MonoDB  	关系型数据库
	Database	Batabase
	Collection	Table
	Documention	Row/Recod
	Field		Column

MongoDB的优势:

	1、 结构简单 json
	2、 容易扩展	属性随便加

MongoDB的数据类型: String, Integer, Doubler, Boolean, Object, Object ID, Datetime, Code
为啥存在Code数据內型: Code数据类型用于文档存储JavaScript代码

ObjectId组成部分: 时间戳、客户端ID、客户进程ID、三个字节计数器

MongoDB索引设计原理: MongoDB没有设计索引时,必须通过扫库操作,使用db.collection.createIndex()在集合中创建一个索引

名字空间(namespace)是什么: 数据库名和collect以点连接的位置,称为命名空间

语法操作:

	1、创建数据库:
		use Database_name  # 如果数据库没有,则创建,如果存在则跳转

		show dbs 	# 显示所有的数据库  注意: 刚开始创建的数据库无法查看,必须添加一条新的数据,如果没有表则存放在test数据库中

		db.dropDatabase()  # 切换到数据库中, 然后直接删除操作。

	2、 创建集合
		db.createCollection("xxx")  # 在数据库中创建集合, 在MongoDB中不需要显示的创建集合,可以通过db.like.insert({"aa":"bbb"})隐式的创建集合

		show collections  # 查询所有的集合

		db.collection.drop()  # 删除集合

	3、插入文档(数据)
		db.collection.insert({"name":"qw", "sex": 1})

	4、更新文档(数据) ====update(), save()
											#  如果不存在,是否执行插入操作   默认只会更新第一条数据,改为True查出所有更新
		db.collection.update(条件, 更新语句, {upsert: True, multi: True})
		db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})

		db.col.save({"_id": ObjectId("xxxxxx"), "title": "aaa"})  # 必须填_id字段才会更新记录,否则执行插入的操作

	5、删除文档
								# 是否只删除一行代码,默认全部删除, 
		db.collection.remove(条件,{justOne: ,writeConcern: })

		# 官方推荐
		db.collection.deleteMany({"status":0}) # 删除多个
		db.collection.deletOne({"status":0})  # 删除多行

	6、查询
		db.collection.find().pretty()  # 格式化显示文档

		小于: $lt 	小于等于: $lt   大于:$gt   大于等于$gte   不等于:$ne

		$or[{"name": 11}, {"age": 22}]
		db.col.find({$or:[{"by":"菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()
		db.col.find({"likes": {$gt:50}, $or: [{"by": "菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()

	7、skip() 和 limit() 和 sort()
		skip()	跳过多少条数据
		limit() 读取指定条数据
		sort({"age": -1})  排序, 1正序,2倒序

	8、索引:
		db.collection.createIndex({"age": 1})
		db.col.getIndexes()  # 查看集合索引


	9、聚合: 主要进行数据的平均值求和等相关操作
		db.collection.aggregate($group: {_id: "$by_user", num_tutorial: {$sum: 1}})

你可能感兴趣的:(SQL)