数据库:按照数据结构来组织,存储和管理数据的仓库,
	   是一个长期存储在计算机内的,有组织的,可共享的,统一管理的大量数据的集合,
	   可视为电子化的文件柜,用户可以对文件中的数据进行增加,删除,修改,查找等操作
	   
数据库分类:关系型数据库(RDBM):mySql,orcle,db2,SQLserve,表格形式
		  非关系型数据库:noSQL,键值对数据库,mongDB

关系型数据库和非关系型数据库区别:
	1-数据存储方式不同
	2-关系型数据库表格形式
	3-非关系型数据存储在文档,键值对的结构
数据库服务器存放数据库database,
数据库放多个集合collection,
集合里放文档document
mongodb:是数据库的服务,服务里面可以有多个数据库,用来存放数据的集合
安装:
配置环境变量path:C:\软件\mongodb\mongodb-win32-x86_64-windows-4.4.1\bin

安装包bin打开后黑屏终端cmd:
C:\软件\mongodb\mongodb-win32-x86_64-windows-4.4.1\bin>mongod
或者
C:\软件\mongodb\mongodb-win32-x86_64-windows-4.4.1\bin>mongod --dbpath=C:\mongodb\data --port=27017
黑屏终端cmd启动数据库命令(希尔模式):mongo
启动数据库命令:mongo

数据库命令:
查询所有的数据库:show dbs 或者 show databases
创建并进入数据库:use 数据库名字	(use text1)
查看当前数据库:db 
删库 db.dropDatabase()

集合:
新建集合:db.createCollection('集合名')
		db.集合名称
查看集合:show collections 或者 show tables
删除集合:db.集合名.drop()

文档:
插入:db.集合名.insert({})
		db.集合名.insertOne({})
		db.集合名.insertMany([{},{}])
		
删除:db.集合名.remove({}) 全删除
	 db.集合名.remove({},true) 删除符合条件的第一个
	 db.集合名.deleteOne({})
	 db.集合名.deleteMany({})

修改(编辑):db.集合名.update({筛选条件},{$set:{修改内容}},{multi:true})
		  db.集合名.update({筛选条件},{$unset:{删除内容}}) 删除
		  db.集合名.updateOne() 更新一条数据
		  db.集合名.updateMany() 更新多条数据
		  db.集合名.replaceOne() 替换第一条数据
		  
查询:db.集合名.find({name:"a"})
	 db.集合名.find({name:"a"}).count 符合条件的数量
	 db.集合名.findOne({})
	 db.集合名.find()[0]
	 
投影:对显示字段的控制,显示的用1,不显示的用0
	db.集合名.find({},{job:0})
	db.集合名.find({},{name:1})
	emp.find({ sal: { $gte: 1250 } }, { ename: 1, _id: 0 })

排序:sort(),-1为降序,1为升序
	emp.find().sort({ sal: 1, empno: -1 })
操作符:方法,链式调用
$gt 大于 
$gte 大于等于
$lt 小于
$lte 小于等于
$eq 全等
$ne 不等于

$or 或者
	工资 >= 2500 或者  <= 1000
	emp.find({ $or: [{sal: { $gte: 2500 }}, { sal: { $lte: 1000 } }] })
	
$inc 自增
	为所有工资低于1000的员工增加工资400元
	emp.update({ sal: { $lte: 1000 } }, { $inc: { sal: 400 } })
分页功能:
limit(n) 取出n条数据
skip(m) 跳过第m条以前的数据,从m+1开始取

var page = 0;limit = 10;
如:第4页的数据 30-40
skip = (page-1)*limit 跳过的数据limit
db.user.find().skip(skip).limit(limit)

查询集合中前10条数据
numbers.find().limit(10)

查询集合中第11-20条数据
numbers.find().skip(10).limit(10)

查询第21-30条数据
numbers.find().skip(20).limit(10)
向number中插入20000条数据
1-  var arr = [];
	for(var i = 1; i <= 20000; i++) {
	        arr.push( { num: i } )
	}
	db.user.insert(arr)

2-  for(var i=1 ; i<=20000 ; i++){
	    db.user.insert({num:i});
	}
文档关系:
一对一:一个字段对应一个对象
db.wifeAndHusband.insert([
    {
        name:"黄蓉",
        husband:{
            name:"郭靖"
        }
    }
}
一对多:一个字段对应一个数组
多对一
多对多