MongoDB简介
MongoDB在功能和复杂性之间取得了很好的平衡,并且大大简化了原先十分复杂的任务,它具备支撑今天主流web应用的关键功能:索引、复制、分片、丰富的查询语法,特别灵活的数据模型。与此同时还不牺牲速度。
MongoDB是一款强大、灵活,且易于扩展的通用型数据库。能扩展出非常多的功能,如二级索引、范围查询、排序、聚合,以及地理空间索引。
设计特点
易于使用
MongoDB是一个面向文档的数据库,比关系型数据库有更好的扩展性。用文档代替行。能够仅使用一条记录来表现发展的层次关系。
文档的键和值不再是固定的类型和大小。
易于扩展
MongoDB的设计采用横向扩展。面向文档的数据模型使它能很容易的在多台服务器之间进行数据分割。
MongoDB能自动处理跨集群的数据和负载,自动重新分配文档,以及将用户请求路由到正确的机器上。如果一个集群需要很大的容量,只需向集群添加新服务器,MongoDB就会自动将现有数据向新服务器传送。
丰富的功能
MongoDB作为一款通用型数据库,除了能够增删改查之外,还有一系列不断扩展的独特功能。
索引
MongoDB支持通用二级索引,允许多种快速查询,且提供唯一索引、符合索引、地理空间索引,以及全文索引。
聚合
MongoDB支持“聚合管道”。用户能通过简单的片段创建复杂的聚合,并通过数据库自动优化。
特殊的集合类型
MongoDB支持存在时间有限的集合,适用于那些将在某个时刻过期的数据,如会话。类似的,MongoDB也支持固定大小的集合,用于保存近期数据,如日志。
文件存储
MongoDB支持一种非常易用的协议,用于存储大文件和文件元数据。
MongoDB不具备连接和复杂的多行事务
卓越的性能
MongoDB能对文档进行动态填充,也能预分配数据文件以利用额外的空间换取稳定的性能。MongoDB把尽可能多的内存用作缓存,试图为每次查询自动选择正确的索引。
MongoDB基础知识
1.文档是MongoDB中数据的基本单元,非常类似mysql的行,但更具表现力。
2.集合可以看作是一个拥有动态模式的表。
3.MongoDB的一个实例可以拥有多个相互独立的数据库,每一个数据库都拥有自己的集合。
4.每一个文档都有一个特殊的键“_id”,在文档所属的集合中是唯一的。
5.MongoDB自带js shell,可用于管理MongoDB的实例或数据操作。
文档(类似mysql的行)
文档就是键值对的一个有序集。比如:{“greeting”:”hello world!”,”foo”:3},文档的键是字符串。键可以是任意utf-8字符。除了少数情况:
- 键不能含有