1 MongoDB简介
1.1 NoSQL简介
NoSQL(NoSQL,Not Only SQL ),意即"不仅仅是SQL"。
1970年,关系型数据库诞生,用于规范性的管理数据。NoSQL 是一项全新的数据库革命性运动,提倡运用非关系型的数据存储。NoSQL用于超大规模数据的存储,这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。
知名数据库:列存储HBase,文档存储MongoDB,键值存储Redis。
1.2 MongoDB简介
MongoDB是一个基于分布式文件存储的数据库。MongoDB是一个介于关系数据库和非关系数据库(nosql)之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 SQL的table。字段值可以包含其他文档,数组等。
2 MongoDB基础概念mongodb中基本概念有文档、集合、数据库。
一个mongodb中可以建立多个数据库。MongoDB的默认数据库为"db",该数据库存储在data目录中。
集合就是 MongoDB 文档组,类似于 RDBMS 中的table。相对于sql,集合没有固定的结构,对集合可以插入不同格式和类型的数据。
文档是一个键值(key-value)对,类似于 RDBMS 中的record。MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是 MongoDB 非常突出的特点。
2.1 MongoDB的数据类型
MongoDB中常用的几种数据类型:String:字符串类型。
integer:整型数值,用于存储数值型数据。
boolean:布尔值(真或假)。用于存储布尔类型。
2.2 MongoDB的运算符
数学运算符: 略
条件运算符:(>) 大于:$gt
(
(>=) 大于等于:$gte
(<= ) 小于等于: $lte
$type运算符:使用数字代表数据类型。比如db.tableName.find({"column1" : {$type : 1}})表示获取字段column1中数据类型为double的记录。Double:1
String:2
Object:3
Array:4
Boolean:8
Date :9
Null:10
2.3 数据类型转换
instance of:判断类型。
NumberInt函数:字符串转换为int类型。
3 MongoDB的数据库SQL和MongoDB的对比
3.1 数据库命名规则
推荐的命名规范:不能是空字符串("")。
不得含有' '(空格)、.、$、/、\和\0 (空宇符)。
应全部小写。
最多64字节。
3.2 数据库的操作
语法:db.DatabaseName.Method。(MongoDB的命令末尾的分号可有可无。)显示所有数据库:show databases/dbs。
显示当前数据库:db。
切换数据库:use DatabaseName。
创建数据库:db.DatabaseName.insert({“id’”: 1}); (切换到一个不能存在的数据库并插入数据,就可以自动创建一个数据库和一个集合。)
删除数据库:db.dropDatabase(); 删除当前的数据库,这个函数没有参数。
实操:
> show dbs;
Community 0.000GB
a 0.000GB
admin 0.000GB
...(省略部分显示)
> db;
test
> use info;
switched to db info
> db.info.insert({"id":1});
WriteResult({ "nInserted" : 1 })
3.3 数据存在硬盘的位置
安装时会提示数据的存放路径:E:\Program Files\MongoDB\Server\4.0\data。
也可以连接MongoDB时指定路径,语法形式为:mongod --dbpath D:\xx。
表对应的是.wt格式的文件。
4 MongoDB的表
即collection。
4.1 表的命名规则
略
4.2 表的操作查看所有表:show tables或show collections;
创建表:db.collection_name.insert(document); 对不存在