1、MongoDB
MongoDB是用C++语言编写的非关系型数据库。特点是高性能、易部署、易使用,存储数据十分方便,主要特性有:
面向集合存储,易于存储对象类型的数据
模式自由
支持动态查询
支持完全索引,包含内部对象
支持复制和故障恢复
使用高效的二进制数据存储,包括大型对象
文件存储格式为BSON(一种JSON的扩展)
2、安装
【1】:下载地址:https://www.mongodb.org/dl/win32/。
【2】:配置环境变量:C:\MongoDB\Server\3.2\bin 【找到你MongoDB的安装目录】。
【3】在C盘目录创建文件夹data,在data中创建db、log文件夹。
【4】在dom窗口输入mongod启动服务器。
【5】新打开一个dom窗口输入mongo 连接数据库。
3、配置MongoDB后台服务启动
【1】在目录 C:\\MongoDB\Server\3.2 下添加一个配置文件mongod.cfg
【2】以管理员的身份打开命令行窗口运行如下代码
sc.exe create MongoDB binPath= "\"mongod的bin目录\mongod.exe\" --service --config=\"mongo的安装目录\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
【3】启动服务
【4】如果启动失败,证明上边的操作有误,在控制台输入 sc delete MongoDB 删除之前配置的服务,然后从第一步再来一次。
4、MongoDB基本操作
show dbs、show databases 查询所有数据库
use 数据库名 进入到指定数据库中
**在MongoDB中,数据库和集合都不需要手动创建,当我们创建文档时,如果文档所在的集合或数据库不存在会自动创建数据库和集合
db 显示的是当前所处的数据库
show collections 显示数据库中所有的集合
插入:---》
向数据库插入文档 db.<集合名称>.insert(文档内容)
一次插入多条,用数据包裹。
insertOne(); //插入一条 insertMany(); //插入多条
save()与insert()区别?
一般情况下没有区别,如果在save()指定_id的值,就变成update语句效果。
复制集合中所有数据到新集合中
查询:--》
db.<集合名称>.find() 查询当前集合中的所有的文档
查询全部文档:
条件查询
查询文档总记录数
findOne()只能返回符合条件的第一条数据
更新:--》
删除:--》
remove默认删除符合条件多个
删除一个集合 db.collection.drop()
删除一个数据库 db.dropDatabase()
数组操作:--》
逻辑运算符:--》
排序:--》
聚合函数:--》
索引:--》
5、固定集合
固定集合指的是事先创建而且大小固定的集合 。
固定集合特性:固定集合很像环形队列,如果空间不足,最早的文档就会被删除,为新的文档腾出空间。一般来说,固定集合适用于任何想要自动淘汰过期属性的场景,没有太多的操作限制。
创建固定集合使用命令:db.createCollection(“collectionName”,{capped:true,size:100000,max:100});
size指定集合大小,单位为KB,max指定文档的数量
当指定文档数量上限时,必须同时指定大小。淘汰机制只有在容量还没有满时才会依据文档数量来工作。要是容量满了,淘汰机制会依据容量来工作。
7、备份和恢复
备份:
MongoDB提供了备份和恢复的功能,分别是MongoDB下载目录下的mongodump.exe和mongorestore.exe文件 .
备份数据使用下面的命令:mongodump -h dbhost -d dbname -o dbdirectory
-h:MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
-d:需要备份的数据库实例,例如:test
-o:备份的数据存放位置,例如:c:\data\dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。
恢复:
恢复数据使用下面的命令:mongorestore -h dbhost -d dbname dbdirectory
-h:MongoDB所在服务器地址
-d:需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
dbdirectory :备份数据所在位置,例如:c:\data\dump\test
8、导入和导出
导出:
导出数据可以使用命令:mongoexport -h dbhost -d dbname -c collectionName -o output
参数说明:
-h 数据库地址
-d 指明使用的库
-c 指明要导出的集合
-o 指明要导出的文件名
导入:
导入数据可以使用命令:mongoimport -h dbhost -d dbname -c collectionname output
参数说明:
-h 数据库地址
-d 指明使用的库
-c 指明要导入的集合
8、Mongoose
Mongoose是一个对象文档模型(ODM)库,它对Node原生的MongDB模块进行了进一步的优化封装,并提供了更多的功能。
优点:
(1)可以为文档创建一个模式结构(Schema)。
(2)可以对模型中的对象/文档进行验证。
(3)数据可以通过类型转换成对象模型
nodejs操作数据库
schema