MongoDB 是什么?关于流行的开源数据库
Posted: Sat Dec 28, 2024 7:05 am
本教程将向您介绍 MongoDB 数据库。您将了解如何安装软件、操作数据以及如何将数据设计技术应用于您自己的应用程序。
所有示例均使用 MongoDB 5 开发,但大多数示例也适用于更早或更新的版本。代码可以直接输入到客户端应用程序或 MongoDB shell(mongo 或 mongosh)中,以查询和更新数据库。
MongoDB 是一个开源的 NoSQL 数据库。NoSQL 意味着该数据库不像传统的 SQL 数据库那样使用关系表。
有多种 NoSQL 数据库类型,但 MongoDB 将数据存储在类似 JavaScript 的对象(称为文档)中,其内容如下所示:
尽管 MongoDB 已成为基于 JavaScript 的框架Node.js 的代名词,但官方的 MongoDB数据库驱动程序适用于大多数框架、语言和运行时,包括Node.js、PHP 和 Python 。您还可以选择提供更高级别抽象或对象关系映射 (ORM) 功能的库(例如Mongoose) 。
与 SQL 表不同,MongoDB 中存储的内容没有结构限制。数据模式不受强制:您可以将任何内容存储在任何位置。这使得 MongoDB 成为更有机(或更混乱)数据结构的理想选择。
考虑一个联系人地址簿。个人通常可以有多个电话号码。您可以在 SQL 表中定义三个电话字段,但对于某些联系人来说这太多了,而对于其他联系人来说又太少了。最终,您将需要一个单独的电话表,这会增加更多复杂性。
请注意,MongoDB 使用类似的 JavaScript 对象表示法进行数据更新和查询,如果您习惯使用 SQL,这可能会带来一些挑战。
MongoDB 的元素
在继续之前,我们先来看看 MongoDB 的工作原理。我们将在本文中使用这些词汇。
文档:数据存储中的单个对象,类似于 SQL 数据库表中的记录或行。
字段:文档中的单个数据项,例如姓名或电话号码,类似于 SQL 字段或表列。
集合:一组类似的文档,类似于 SQL 表。虽然您可以将所有文档放入一个集合中,但将它们分组到特定类型通常更为实用。在联系人通讯录中,您可以为人员设置一个集合,为公司设置一个集合。
数据库:相关数据的集合,含义与 SQL 数据库相同。
模式:模式定义数据结构。在 SQL 数据库中,您必须先定义表定义以及相关字段和类型,然后才能存储数据。在 MongoDB 中,这并非必需,尽管可以创建一个模式,在将文档添加到集合之前对其进行验证。
索引:用于提高查询性能的数据结构,含义与SQL的索引相同。
主键:每个文档的唯一标识符。MongoDB 会自动向集合中的每个文档添加一个唯一的、已编入索引的 _id 字段。
非规范化:在 SQL 数据库中,“规范化”是一种用于组织数据和消除重复的技术。在 MongoDB 中,鼓励“非规范化”。您可以主动重复数据,单个文档就可以包含所需的所有信息。
连接: SQL 提供了 JOIN运算符,因此可以通过单个查询从多个规范化表中检索数据。直到 3.6 版,MongoDB 中才支持连接,并且仍然存在限制。这也是数据应非规范化为自包含文档的另一个原因。
事务:当更新更改单个文档上的两个或多个值时,MongoDB 会确保它们全部成功或全部失败。跨两个或多个文档的更新必须包含在事务中。MongoDB 自 4.0 版起就支持事务,但需要多服务器副本集或分片集群。下面的示例安装使用单个服务器,因此无法进行事务。
如何安装MongoDB
在本地机器上使用 MongoDB 有三个选项。我们将逐一向您介绍。
将下载并启动最新版本的 MongoDB 5。首次启动将需要几分钟,但后续运行速度会快得多。
注意:
定义一个 MongoDB 管理员账户,ID 为“root”,密码为“pass”。
重启后数据会保存在名为 dbdata 的 Docker 卷中。
还提供Adminer 数据库客户端。
您可以使用任何 MongoDB 数据 加拿大 WhatsApp 号码数据 库客户端使用 ID“root”和密码“pass”连接到 localhost:27017。或者,您可以er ,并使用以下凭据登录:
信息
服务器 可以在运行 Docker Desktop 的 Mac 和 Windows 设备上运行。Linux 用户应使用设备的网络 IP 地址,而不是 localhost(Adminer 将其解析为其自己的Docker 容器)。
管理员登录
管理员登录
Adminer 允许您检查集合和文档。但请注意,集合被称为“表”:
管理员收藏视图
管理员收藏视图
要运行命令,您可以使用 MongoDB Shell(mongosh)或旧式mongo命令行 REPL(Read Eval Print Loop)环境。
访问 Docker MongoDB 容器的 bash shell:
docker exec -it mongodb bash
然后使用 ID 和密码启动 MongoDB shell:
mongosh -u root -p pass
mongo(如果愿意,可以使用传统命令。)
然后您可以发出如下 MongoDB 命令:
show dbs;— 显示所有数据库
use mongodemo;— 使用特定数据库
show collections;— 列出数据库中的集合
db.person.find();— 列出集合中的所有文档
exit;— 退出/关闭 shell
通过从项目目录运行以下命令关闭 MongoDB:
docker-compose down
2. 使用云提供商(无需安装)
您可以使用托管的 MongoDB 实例,因此无需在本地安装任何东西。互联网连接必不可少,响应速度取决于主机和带宽。大多数服务将收取月费和/或兆字节使用费。
主机通常会提供详细信息,以便您可以使用 MongoDB 客户端软件远程管理数据库。
3.本地安装MongoDB
MongoDB 可以在 Linux、Windows 或 Mac OS 上安装和配置。有两个版本可用:
商业企业版
开源社区版(本教程中使用)
MongoDB安装页面提供了针对各种操作系统的说明。一般来说:
Linux 版本使用包管理器安装,例如Ubuntu 上的 apt
Mac OS 版本使用 brew 安装
Windows 版本使用 .msi 安装程序安装
请务必仔细按照说明进行操作以确保安装成功!
所有示例均使用 MongoDB 5 开发,但大多数示例也适用于更早或更新的版本。代码可以直接输入到客户端应用程序或 MongoDB shell(mongo 或 mongosh)中,以查询和更新数据库。
MongoDB 是一个开源的 NoSQL 数据库。NoSQL 意味着该数据库不像传统的 SQL 数据库那样使用关系表。
有多种 NoSQL 数据库类型,但 MongoDB 将数据存储在类似 JavaScript 的对象(称为文档)中,其内容如下所示:
尽管 MongoDB 已成为基于 JavaScript 的框架Node.js 的代名词,但官方的 MongoDB数据库驱动程序适用于大多数框架、语言和运行时,包括Node.js、PHP 和 Python 。您还可以选择提供更高级别抽象或对象关系映射 (ORM) 功能的库(例如Mongoose) 。
与 SQL 表不同,MongoDB 中存储的内容没有结构限制。数据模式不受强制:您可以将任何内容存储在任何位置。这使得 MongoDB 成为更有机(或更混乱)数据结构的理想选择。
考虑一个联系人地址簿。个人通常可以有多个电话号码。您可以在 SQL 表中定义三个电话字段,但对于某些联系人来说这太多了,而对于其他联系人来说又太少了。最终,您将需要一个单独的电话表,这会增加更多复杂性。
请注意,MongoDB 使用类似的 JavaScript 对象表示法进行数据更新和查询,如果您习惯使用 SQL,这可能会带来一些挑战。
MongoDB 的元素
在继续之前,我们先来看看 MongoDB 的工作原理。我们将在本文中使用这些词汇。
文档:数据存储中的单个对象,类似于 SQL 数据库表中的记录或行。
字段:文档中的单个数据项,例如姓名或电话号码,类似于 SQL 字段或表列。
集合:一组类似的文档,类似于 SQL 表。虽然您可以将所有文档放入一个集合中,但将它们分组到特定类型通常更为实用。在联系人通讯录中,您可以为人员设置一个集合,为公司设置一个集合。
数据库:相关数据的集合,含义与 SQL 数据库相同。
模式:模式定义数据结构。在 SQL 数据库中,您必须先定义表定义以及相关字段和类型,然后才能存储数据。在 MongoDB 中,这并非必需,尽管可以创建一个模式,在将文档添加到集合之前对其进行验证。
索引:用于提高查询性能的数据结构,含义与SQL的索引相同。
主键:每个文档的唯一标识符。MongoDB 会自动向集合中的每个文档添加一个唯一的、已编入索引的 _id 字段。
非规范化:在 SQL 数据库中,“规范化”是一种用于组织数据和消除重复的技术。在 MongoDB 中,鼓励“非规范化”。您可以主动重复数据,单个文档就可以包含所需的所有信息。
连接: SQL 提供了 JOIN运算符,因此可以通过单个查询从多个规范化表中检索数据。直到 3.6 版,MongoDB 中才支持连接,并且仍然存在限制。这也是数据应非规范化为自包含文档的另一个原因。
事务:当更新更改单个文档上的两个或多个值时,MongoDB 会确保它们全部成功或全部失败。跨两个或多个文档的更新必须包含在事务中。MongoDB 自 4.0 版起就支持事务,但需要多服务器副本集或分片集群。下面的示例安装使用单个服务器,因此无法进行事务。
如何安装MongoDB
在本地机器上使用 MongoDB 有三个选项。我们将逐一向您介绍。
将下载并启动最新版本的 MongoDB 5。首次启动将需要几分钟,但后续运行速度会快得多。
注意:
定义一个 MongoDB 管理员账户,ID 为“root”,密码为“pass”。
重启后数据会保存在名为 dbdata 的 Docker 卷中。
还提供Adminer 数据库客户端。
您可以使用任何 MongoDB 数据 加拿大 WhatsApp 号码数据 库客户端使用 ID“root”和密码“pass”连接到 localhost:27017。或者,您可以er ,并使用以下凭据登录:
信息
服务器 可以在运行 Docker Desktop 的 Mac 和 Windows 设备上运行。Linux 用户应使用设备的网络 IP 地址,而不是 localhost(Adminer 将其解析为其自己的Docker 容器)。
管理员登录
管理员登录
Adminer 允许您检查集合和文档。但请注意,集合被称为“表”:
管理员收藏视图
管理员收藏视图
要运行命令,您可以使用 MongoDB Shell(mongosh)或旧式mongo命令行 REPL(Read Eval Print Loop)环境。
访问 Docker MongoDB 容器的 bash shell:
docker exec -it mongodb bash
然后使用 ID 和密码启动 MongoDB shell:
mongosh -u root -p pass
mongo(如果愿意,可以使用传统命令。)
然后您可以发出如下 MongoDB 命令:
show dbs;— 显示所有数据库
use mongodemo;— 使用特定数据库
show collections;— 列出数据库中的集合
db.person.find();— 列出集合中的所有文档
exit;— 退出/关闭 shell
通过从项目目录运行以下命令关闭 MongoDB:
docker-compose down
2. 使用云提供商(无需安装)
您可以使用托管的 MongoDB 实例,因此无需在本地安装任何东西。互联网连接必不可少,响应速度取决于主机和带宽。大多数服务将收取月费和/或兆字节使用费。
主机通常会提供详细信息,以便您可以使用 MongoDB 客户端软件远程管理数据库。
3.本地安装MongoDB
MongoDB 可以在 Linux、Windows 或 Mac OS 上安装和配置。有两个版本可用:
商业企业版
开源社区版(本教程中使用)
MongoDB安装页面提供了针对各种操作系统的说明。一般来说:
Linux 版本使用包管理器安装,例如Ubuntu 上的 apt
Mac OS 版本使用 brew 安装
Windows 版本使用 .msi 安装程序安装
请务必仔细按照说明进行操作以确保安装成功!