一架梯子,一头程序猿,仰望星空!
MongoDB入门教程 > 内容正文

MongoDB简介


MongoDB 是通用、基于文档的分布式数据库,是一个介于关系数据库和非关系数据库(nosql)之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

一个MongoDB文档例子

{
  "_id": "5cf0029caff5056591b0ce7d",
  "firstname": "Jane",
  "lastname": "Wu",
  "address": {
    "street": "1 Circle Rd",
    "city": "Los Angeles",
    "state": "CA",
    "zip": "90404"
  },
  "hobbies": ["surfing", "coding"]
}

没啥特别的,就是一个JSON数据,MongoDB中存储的文档数据就是类似这样的一条JSON数据,正因为存储的是JSON数据,所以MongoDB存储的数据格式非常灵活,不像MYSQL必须是固定的表结构,意思就是随时加字段、删除字段速度也是很快的。

提示:如果你的业务对复杂事物、连表、数据一致性没那么高要求的话,单纯追求数据读写速度快、高并发、存储格式灵活自由、不需要提前定义表结构,MongoDB是不错的选择。

MongoDB特点

高性能

MongoDB提供高性能的数据持久化。特别是,

  • 使用嵌入式数据模型可以减少数据库系统的I / O操作。
  • 支持索引,所以查询效率非常高,而且索引字段可以是嵌入式文档的字段或者数组的键。

丰富的查询语言

MongoDB支持丰富的查询表达式,以满足各类业务查询场景。

支持地理信息查询

对于O2O类业务、涉及地理位置相关业务,经常需要查询附近的店铺、附近的人、判断你是否在一个商圈内,都需要地理信息检索支持。

高可用

MongoDB的副本集提供:

  • 自动故障转移
  • 数据冗余。

副本集是一组维护相同数据集合的 mongod实例,提供了数据冗余和高可用支持。

水平拓展

MongoDB支持数据水平拓展,通过分片技术,将数据分布在一个集群的机器上。