进入: mongo
退出: exit
# 时刻记住, MongeDB数据格式类似于json格式

一、 库级操作

1. show dbs	 # 查看所有的数据库
2. use 数据库名		# 创建/切换数据库
3. db		# 查看当前使用的数据库
4. db.dropDatabase()	# 删除数据库

二、 集合操作语句

1. show collections  	# 显示当前数据库的集合
2. db.createCollection('集合名称')	 # 创建集合
3. db.集合名称.drop()  	  # 删除集合

三、 文档操作

# 增
db.集合名称.insert({})  # 添加单条数据
如: db.stu.insert({name: 'long', age: 18})
db.集合名称insert([{}, {}..])  # 添加多条
如: db.stu.insert([
    {name: 'zhu', age: 19},
    {name: 'cheng', age: 18}
])
# 会自动添加一个名为'_id'的字段
# 自己设置'_id'的值(_id值不能重复)  如: db.stu.insert({'_id': 1, name: 'long', age: 18})

# 查
1. 查看所有文档: db.集合名称.find()
   格式化显示:  db.集合名称.find().pretty()
   
2. 条件查找: db.集合名称.find({条件})
如查age=18的文档:
	db.stu.find({age: 18})
查age=18并且 sex='M'的:
	db.stu.find({age: 18, sex: 'M'})
	
	# 操作符
	$ne		不等于
	$gt		大于
	$lt		小于
	$gte	大于等于
	$lte	小于等于
	用法: db.集合名称.find({age: {$gte: 18}})  # 查找age>=18的所有文档
	
	# 逻辑运算符:  1. and条件
				 2. or条件
				 3. and 和 or 混用
	用法: db.集合名称.find({$and: [{}, {}...]})
	如:1. 查找age=18并且 sex='M'的
	db.stu.find({$and: [{age: 18}, {sex: 'M'}]})
	2. 查找age=18或者sex='M'的
	db.stu.find({$or: [{age: 18}, {sex: 'M'}]})
	3. and 和 or 混用
	用法: db.集合名称.find({$or: [{$and: [{}...]}, {$and: [{}...]]})
	如: 查找age=18, sex='M' 或者 age=18, sex='F'
	db.stu.find({$or: [{$and: [{age: 18}, {sex: 'M'}]}, {$and: [{age: 18}, {sex: 'F'}]}]})

# 改   修改文档
1. 修改一条数据: (默认修改第满足条件的第一条数据)
	db.集合名称.update({要修改的文档的条件}, {new})  # 重写, 直接把原数据改成new
	db.集合名称.update({要修改的文档的条件}, {$set: {new}}) # 这才是修改, 指定属性修改
	如: 把第一条age=15的修改成age=18
	db.stu.update({age: 15}, {$set: {age: 18}})
2. 同时修改所有满足条件的: 在后面加上这一条件: {multi: true}
用法: db.集合名称.update({条件}, {$set: {new}}, {multi: true}})
如: 把age=19的全部修改成age=26
db.stu.update({age: 19}, {$set: {age: 19}}, {multi: true})


# 删   删除文档
用法: db.集合名称.remove({})  # 默认删除所有满足条件的
如: 删除所有age=18的
db.stu.remove({age: 18})

删除满足条件的第一条文档: 加上: {justOne: true}
用法: db.集合名称.remove({}, {justOne: true})
如: 删除文档中, 第一条age=18的文档
db.stu.remove({age: 18}, {justOne: true})