Mongodb

官方文档:MongoDB Documentation

中文文档:MongoDB中文网

操作文档:https://www.qikegu.com/docs/3267

MongoDB 的生态、理念非常先进而且成熟、但是 mongoDB 不仅有开源版本,还有企业版本。所以有部分公司比较担心,哪天无法使用 mongoDB 了。所以也产生了一些替代产品。类似于mysql和mariadb

1. DynamoDB  :AWS
2. SequoiaDB :巨杉数据库(国内一些国企,已经开始转向巨杉)

基本介绍

MongoDB 是由 C++语言编写并基于分布式文件存储的开源数据库,属于 NOSQL。

MongoDB 是一款介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的

NOSQL 数据库。它面向文档存储,而且安装和操作起来都比较简单和容易,而且它支持各种流行编程语言进行操作,如 Python,Node.js, Java, C++, PHP, C#等。

目前在大数据、内容管理、持续交付、移动应用、社交应用、用户数据管理、数据中心等领域皆有广泛被使用。

MongoDB 相对于 RDBMS 的优势

  • 无固定结构。

  • 数据结构由键值(key=> value)对组成。MongoDB 的文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组,单个对象的结构是清晰的。数据存储形式为:bson –> binary json(二进制的json)

  • 没有复杂的表连接。不需要维护表与表之间的内在关联关系。

  • 查询功能强大。MongoDB 的查询功能几乎与 SQL 一样强大,使用基于文档的查询语言,可以对文档进行动态查询。

  • 易于调优和扩展。具备高性能、高可用性及可伸缩性等特性

  • 应用程序对象与数据库对象天然对应。

  • 可以基于内存存储或者硬盘文件存储,提供丰富的查询操作和索引支持,也有事务操作,可以更快地更稳定的访问数

    据。(mongodb 4.0 以后才真正支持所谓的多文档事务操作)Mysql 8.0 之后做了优化,相对于mongodb来说,性能差距没以前那么大了;

术语对比

SQL Mongodb 描述
库(database) 库(database)
表(Table) 集合(Collection)
行/记录(RoW) 文档 (Document) Document 就是 json 结构的一条数据记录
列/字段(Col) 字段/键/域(Field)
主键(Primary Key) 对象 ID (Objectld) id: Objectld ("10c191e8608f19729507deea")
索引(Index) 索引(Index) 也有普通索引,唯一索引这么区分的

Mongodb Mongo 介绍

Mongod 是处理 MengoDB 系统的主要进程。主要负责处理数据请求,管理数据存储,和执行后台管理操作。当我们运行 mongod 命令意味着正在启动 MongoDB 进程,并且在后台运行。

mongo 是一个命令行实现的客户端操作 mongodb 的工具,用于连接一个特定的 mongod 实例。当我们没有带参数运行 mongo 命令它将使用默认的端口号 27017 和 localhost 进行连接