是什么?
-
由C++语言编写的
-
是一个文档数据库
将数据存储为一个文档,数据结构由
键值(key=>value)对组成
MongoDB 文档类似于JSON 对象
字段值可以包含其他文档,数组及文档数组
MongoDB是一个NoSQL数据库系统:
- 一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表
- 而每个集合中可以存储一组由列标识的记录,列是可以自由定义的,非常灵活,由一组列标识的实体的集合对应于关系数据库表中的行
特点
- 丰富的JSON文档
- 处理数据的最自然和最有效的方式
- 支持数组和嵌套对象作为值
- 允许灵活和动态的模式

- 强大的查询语言
-
丰富且富有表现力的查询语言,允许您按任何字段进行筛选和排序,无论它在文档中的嵌套方式如何
-
支持聚合和其他现代用例
例如基于地理的搜索,图搜索和文本搜索
-
查询本身就是JSON,因此很容易组合。不再需要连接字符串来动态生成SQL查询

-
- 关系数据库的所有功能,以及更多…
- 完整的ACID交易
- 支持查询中的联接
- 两种类型的关系而不是一种:引用和嵌入

概念
mongodb中基本的概念是文档、集合、数据库,下面我们进行简单介绍:

通过下图实例,我们也可以更直观的了解Mongo中的一些概念:


数据库
- 一个mongodb中可以建立多个数据库
- MongoDB的默认数据库为"db",该数据库存储在data目录中
- MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中
- 简单命令:
show dbs
可以显示所有数据的列表db
可以显示当前数据库对象或集合use ‘xxx’
可以连接到一个指定的数据库
- 命名
- 数据库也通过名字来标识。数据库名可以是满足以下条件的任意UTF-8字符串:
- 不能是空字符串(" ")
- 不得含有’ '(空格)、.、$、/、\和\0 (空字符)
- 应全部小写
- 最多64字节
- 有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库:
admin:从权限的角度来看,这是root数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限local: 这个数据库永远不会被复制,可以用来存储限于本地单台服务器的任意集合config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息
- 数据库也通过名字来标识。数据库名可以是满足以下条件的任意UTF-8字符串:
文档
- 文档是一组
键值(key-value)对(即 BSON)。 - MongoDB 的文档
不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是 MongoDB 非常突出的特点
- 需要注意的是:
- 文档中的键/值对是
有序的 - 文档的键是
字符串。除了少数例外情况,键可以使用任意UTF-8字符 - 文档中的值
不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档) - MongoDB
区分类型和大小写 - MongoDB的文档
不能有重复的键
- 文档中的键/值对是
MongoDB是一种用C++编写的文档数据库,采用JSON-like的文档结构,支持数组和嵌套对象,提供强大且富有表现力的查询语言,适用于各种现代用例如地理搜索、图搜索和文本搜索。MongoDB支持完整ACID交易,具备关系数据库的所有功能。

222

被折叠的 条评论
为什么被折叠?



