Mongodb
中文文档: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 进行连接