第五章-MongoDB基础
概述
开源数据库,是目前NoSQL数据库中使用最广泛的数据库之一
是一个开源文档数据库,是用C++语言编写的非关系型数据库
基本概念
文档数据模型
传统的关系型数据库需要对表结构进行预先定义和严格的要求,而这样的严格要求,导致了处理数据的过程更加繁琐,甚至降低了执行效率。在数据量达到一定规模的情况下,传统关系型数据库反应迟钝。
文档存储支持对结构化数据的访问,与关系模型不同的是,文档存储没有强制的架构。文档存储以封包键值对的方式进行存储,文档存储模型支持嵌套结构
文档数据库无需事先定义数据存储结构、
文档存储结构
文档存储结构可分为四个层次:键值对,文档,集合,数据库
键值对
文档型数据库存储结构的基本单位,具体包含了数据和类型
键为字符串类型,值为五种基本类型,数组,日期,嵌套
文档
文档是MongoDB的核心概念,是数据的基本单元
是一组有序的键值对集合
集合
MongoDB将文档存储在集合中,一个集合是一些文档构成的集合
数据库
在MongoDB中,数据库有集合组成
数据类型
MongoDB所采用的数据格式称为BSON,是一种基于JSON的二进制序列化格式
MongoDB改进的主要特性有下面三点:
(1) 更快的遍历速度
(2) 操作更加简单
(3) 支持更多的数据类型
MongoDB的安装与测试
数据库与集合的基本操作
数据库命名规则
数据库操作
创建自定义数据库
没有则创建该数据库
1 | use myDB |
查看数据库
1 | show dbs |
统计数据库信息
操作之前,要先切到该数据库
1 | use test |
删除数据库
1 | db.dropDatabase() |
查看集合
查看当前数据库下的所有集合
1 | db.getCollectionNames() |
集合操作
集合名称的命名规则
集合操作
有显示和隐式创建集合两种方法
集合参数
capped:上限集合,是否限制大小
max:最大文档数,可选
size:具体集合大小,如果capped为True,则它必须命名
显示创建
1 | use myDatabase |
隐式创建
1 | db.mycl.insert({"name":"tom"}) |
集合的其它操作
1 |