MongoDB 数据库
这是一个数据库,与MySQL(关系型数据库)的区别就是,它是一个非关系型数据库 NoSql数据库
关系型数据库和非关系型数据库的区别
1.实质。
非关系型数据库的实质:非关系型数据库产品是传统关系型数据库的功能阉割版本,通过减少用不到或很少用的功能,来大幅度提高产品性能。
2.价格。
目前基本上大部分主流的非关系型数据库都是免费的。而比较有名气的关系型数据库,比如Oracle、DB2、MSSQL是收费的。虽然Mysql免费,但它需要做很多工作才能正式用于生产。
3.功能。
实际开发中,有很多业务需求,其实并不需要完整的关系型数据库功能,非关系型数据库的功能就足够使用了。这种情况下,使用性能更高、成本更低的非关系型数据库当然是更明智的选择。
mongodb的特点:
- 性能高、I/O处理快
- 速度快
- 稳定不好,占用空间大
1.安装MongoDB
下载对应版本的mongodb来进行安装,安装的后注意需要手动设置数据库的位置。。。详细请搜索
1.在安装的时候选择安装地址,一般情况下安装在c盘(默认安装地址)即可
2.我们在c盘(最好)建立一个data文件夹,在data文件夹下面再建立一个db文件夹
3.在mongodb的bin文件夹下,cmd执行 mongod.exe --dbpath c:\data\db
4.运行mongod.exe来启动mongodb
5.依然在mongodb的bin文件夹下cmd 输入mongo回车,就可以操作mongodb,例如 show databases;
小贴士:如果安装不上,因为有一些个dll文件缺少,要么去按照百度教的方法下载驱动精灵修复系统,要么重装系统,要么就用自己的电脑
一般情况下,使用命令行操作数据库就可以,如果不愿意请自行下载各种可视化工具:
基于node可视化工具
2.MongoDB概念
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
它的特点:高性能、易部署、易使用,存储数据非常方便。
3.专业术语
SQL术语、概念 | MongoDB术语、概念 | 说明 |
---|---|---|
database | database | 数据库 |
table | collection | 表\集合 |
row | doucument | 数据记录行\文档 |
column | field | 数据字段\域 |
index | index | 索引 |
table joins | 表连接 mongodb不支持 | |
primary key | primary key | 主键,mongodb自动将_id作为主键 |
database>colletions>documents
4.mongodb的存储数据类似于js的json格式对象,或者json文件存储数据的方式:
[
{
"_id":ObjectId("1726iuhas678971726731"),
"age":25,
"city":"beijing",
"email":"[email protected]"
},
{
"_id":ObjectId("1726iuhas678971726731"),
"age":25,
"city":"beijing"
}
]
5.数据库
一个mongodb中可以建立多个数据库。
MongoDB的默认数据库为"local",该数据库存储在data目录中。
MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的目录中。
6.简单操作
show databases 查看数据库
db 查看当前数据库
use name 切换某个数据库
7.文档
文档是一个键值(key-value)对。
MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是 MongoDB 非常突出的特点。
一个简单的文档例子如下:
[
{"genres": ["犯罪","剧情" ],"title": "肖申克的救赎"},
{"title":"阿甘正传",grade:"8.4","genres":"励志"}
]
8.集合
集合就是 MongoDB 文档组,类似于 RDBMS (关系数据库管理系统:Relational Database Management System)中的表格。
集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。
{
'title':['aaa',"aaa","aaa",["a":{}]]
},
{
'title':'bbb'
}
9.数据类型
String : 这是最常用的数据类型来存储数据。在MongoDB中的字符串必须是有效的UTF-8。
Integer : 这种类型是用来存储一个数值。整数可以是32位或64位,这取决于您的服务器。
Boolean : 此类型用于存储一个布尔值 (true/ false) 。
Double : 这种类型是用来存储浮点值。
Min/ Max keys : 这种类型被用来对BSON元素的最低和最高值比较。
Arrays : 使用此类型的数组或列表或多个值存储到一个键。
Timestamp : 时间戳。这可以方便记录时的文件已被修改或添加。
Object : 此数据类型用于嵌入式的文件。
Null : 这种类型是用来存储一个Null值。
Symbol : 此数据类型用于字符串相同,但它通常是保留给特定符号类型的语言使用。
Date : 此数据类型用于存储当前日期或时间的UNIX时间格式。可以指定自己的日期和时间,日期和年,月,日到创建对象。
Object ID : 此数据类型用于存储文档的ID。
Binary data : 此数据类型用于存储二进制数据。
Code : 此数据类型用于存储到文档中的JavaScript代码。
Regular expression : 此数据类型用于存储正则表达式