词汇表
注意
有关 MongoDB Atlas 这项面向云端 MongoDB 部署的完全托管服务的相关术语,请参阅 Atlas 文档中的词汇表。
- $cmd
- 一个虚拟集合 ,用于公开 MongoDB 的数据库命令 。要使用数据库命令,请参阅 发出命令。
- _id
- 每个 MongoDB 文档 中都需要的字段。_id 字段必须具有唯一值。您可以将
_id
字段视为文档的主键。如果创建的新文档中没有_id
字段,MongoDB 会自动创建该字段,并为该字段分配一个唯一的 BSON ObjectId。 - 累加器
- 聚合管道中的某一表达式,它可用于维护聚合管道中各文档之间的状态。有关累加器操作的列表,请参阅
$group
。 - 操作
- 用户可以对资源执行的操作。操作和资源结合起来创建权限。请参阅操作。
- 管理库
- 获授权的数据库。用户必须有权访问
admin
数据库才能运行某些管理命令。有关管理命令的列表,请参阅管理命令。 - 聚合
- 减少和汇总大量数据的操作。MongoDB 的
aggregate()
和mapReduce()
方法是聚合操作的两个示例。如需了解更多信息,请参阅聚合操作。 - 聚合管道
- 包括一个或多个处理文件的阶段。聚集操作符无需使用 map-reduce 即可计算聚集值。有关操作符列表,请参阅聚合参考。
- 投票节点
- 一个副本集节点,仅用于在选举中投票。仲裁节点不复制数据。仲裁节点会参与主节点选举,但不能成为主节点。有关更多详情,请参阅复制集仲裁节点。
- Atlas
- MongoDB Atlas 是一项云托管的数据库即服务。
- 原子操作
- 原子操作是一种写入操作,它要么完全完成,要么根本没有完成。对于涉及写入多个文档的分布式事务,对每个文档的所有写入都必须成功才能使事务成功。原子操作无法部分完成。请参见原子性和事务。
- 身份验证
- 验证用户身份。请参阅自管理部署的身份验证。
- 授权
- 提供对数据库和操作的访问权限。请参阅自管理部署中基于角色的访问控制。
- 自动加密
- 使用正在使用的加密时,根据预先配置的加密模式自动执行加密和解密。自动加密共享库将 MongoDB 查询语言转换为正确的调用,这意味着您无需为特定的加密和解密调用重写应用程序。
- B树
- 数据库管理系统通常用来存储索引的数据结构。MongoDB 使用 B-Tree 索引。
- 备份光标备份游标
- 指向备份文件列表的可追加游标。备份游标仅供内部使用。
- 平衡器
- 内部 MongoDB 进程,在分片集群的上下文中运行并管理数据块的迁移。管理员必须禁用分片集群上所有维护操作的负载均衡器。请参见分片集群负载均衡器。
- 大端
一种字节顺序,其中多字节数据值的最高有效字节(大端)存储在最低内存地址。
点击放大- 阻塞排序
在返回输出之前必须在内存中执行的排序。阻塞排序可能会影响大型数据集的性能。使用索引排序来避免阻塞排序。
请参阅排序和索引使用,详细了解阻塞排序操作。
- 有界集合扫描
- 查询优化器使用的计划,用于排除具有特定字段值范围的文档。例如,如果日期字段值的范围超出了指定的日期范围,查询计划就会排除该范围内的文档。请参见集合扫描。
- BSON
- 一种序列化格式,用于在 MongoDB 中存储文档和进行远程过程调用。“BSON”是“binary”和“JSON”这两个词的合成词。您可以将 BSON 视为 JSON(JavaScript 对象表示法)文档的二进制表示形式。请参阅BSON 类型和MongoDB 扩展 JSON (v2)。
- BSON类型
- BSON 序列化格式支持的类型集。有关 BSON 类型的列表,请参阅 BSON 类型。
- CAP 定理
- 对于计算系统的三种属性,即一致性、可用性和分区容错性,分布式计算系统可以满足其中任意两项,但不能同时提供全部三项。
- 固定集合
- 一种固定大小的集合,当该集合达到其最大大小时,它会自动覆盖其最旧的条目。复制中使用的 MongoDB oplog 就是一种固定大小集合。请参阅固定大小集合。
- 关联基数
- 一组值中元素数量的度量。例如,组
A = { 2, 4, 6 }
包含 3 个元素,关联基数为 3。请参阅分片键关联基数。 - 笛卡尔积
- 两个数据集组合的结果,组合数据集包含所有可能的值组合。
- CFQ
- 完整公平排队 (cfq) 是一种 I/O 操作调度器,为传入请求进程分配带宽。
- 校验和
- 用于确保数据完整性的计算值。md5 算法有时被用作校验和。
- 数据段
- 一个分片中连续的分片键值范围。数据块范围包括下边界,但不包括上边界。当数据块的增长大于配置的数据块大小时,MongoDB 会对其进行拆分。默认数据块大小为 128 MB。当一个分片包含的集合数据块远多于其他分片时,MongoDB 会迁移数据块。如需了解详细信息,请参阅使用数据块进行数据分区、分片集群负载均衡器和管理分片集群负载均衡器。
- 客户端
使用数据库进行数据持久化和存储的应用程序层。驱动程序提供了应用程序层与数据库服务器之间的接口层。
客户端也可以是单个线程或进程。
- 客户端关联性
- 与指定数据源的一致客户端连接。
- 集群
- 请参阅分片集群。
- cluster-to-cluster sync
- 在分片集群之间同步数据。也称为 C2C 同步。
- 集群化集合
- 集合是指一组按集群化索引键排序的存储文档。请参阅集群化集合。
- CMK
- 客户主密钥的缩写,请参阅客户主密钥。
- 集合
- MongoDB 文档的分组。集合相当于 RDBMS 表。集合位于单个数据库中。集合不强制实施架构。集合中的文档可以具有不同的字段。通常,集合中的文档都具有相似或相关的用途。请参阅命名空间。
- 集合扫描(collection scan)
- 集合扫描是一种查询执行策略,其中 MongoDB 必须检查集合中的每个文档,以确定它是否与查询条件匹配。这些查询效率非常低,并且不使用索引。有关查询执行策略的详细信息,请参阅查询优化。
- 提交
- 保存
startSession
命令开始后所做的数据更改。事务中的操作在使用commitTransaction
命令提交之前不是永久性的。 - commitQuorum
- 在索引构建期间,提交法定人数指定在主节点执行提交之前有多少个从节点必须准备好提交其本地索引构建。
- 复合索引
- 由两个或多个键组成的索引。请参阅复合索引。
- 并发控制
- 并发控制确保数据库操作可以并发执行,而不会影响正确性。悲观并发控制(例如在带 锁 的系统中使用)会阻塞任何可能发生冲突的操作,即使这些操作可能并未发生冲突。乐观并发控制(WiredTiger 使用的方法)会将检查延迟到可能发生冲突之后,并结束和重试任何写入冲突中的操作之一。
- config database
- 包含分片集群元数据的内部数据库。通常情况下,您不会修改
config
数据库。有关config
数据库的更多信息,请参阅配置数据库。 - config server
- 一个
mongod
实例,用于存储与分片集群相关的所有元数据。请参见配置服务器。 - 连接池
- 驱动程序维护的数据库连接缓存。当需要连接数据库时,这些缓存的连接会被重复使用,而不是打开新的连接。
- 连接风暴
- 驱动程序尝试打开与部署的连接的数量超出该部署可以处理的范围的场景。当新连接请求失败时,驱动程序会请求建立更多连接,以响应部署速度减慢或无法打开新连接的情况。这些连续的请求可能会使部署超载并导致中断。
- container
- 一组软件及其依赖库,它们打包在一起,便于在计算环境之间进行传输。Container 在操作系统上作为划分的进程运行,并且可以被赋予自己的资源限制。常见的 container 技术有 Docker 和 Kubernetes。
- 竞争因子
- 尝试修改相同资源(例如文档字段)的多个操作会导致冲突,从而延迟操作。争用因子是与 Queryable Encryption 一起使用的一项设置,用于在内部对加密字段/值对进行分区并优化操作。参见争用。
- CRUD
- 数据库基本操作的首字母缩写词:创建、读取、更新和删除。请参阅 MongoDB CRUD 操作。
- CSV
- 一种文本数据格式,由逗号分隔的值组成。CSV 文件可用于在关系数据库之间交换数据,因为 CSV 文件具有表格数据。您可以使用
mongoimport
导入 CSV 文件。 - cursor
- 指向查询结果集的指针。 客户端可以遍历游标来检索结果。 默认情况下,未在会话中打开的游标会在10分钟不活动后自动超时。 在会话中打开的游标会随着会话的结束或超时而关闭。 请参阅在
mongosh
中迭代游标。 - 客户主密钥
- 用于加密数据加密密钥的密钥。客户主密钥应托管在远程密钥提供程序中。
- daemon
- 后台的非交互式进程。
- 数据目录
mongod
存储数据文件的文件系统位置。dbPath
指定了数据目录。- 数据加密密钥
- 用于加密 MongoDB 文档中字段的密钥。加密的数据加密密钥存储在密钥保管库集合中。数据加密密钥由客户主密钥加密。
- 数据文件
- 存储文档数据和索引。
dbPath
选项指定数据文件在文件系统中的位置。 - 数据分区
- 将数据划分为多个范围的分布式系统架构。分片使用分区。请参阅使用数据块进行数据分区。
- 数据中心可知性
- 允许客户端根据成员的位置对系统中的成员进行寻址的属性。副本集使用标记实现数据中心感知。查看数据中心感知。
- database
- 用于存放集合的容器。每个数据库在文件系统中都有一组文件。一个 MongoDB server 通常拥有多个数据库。
- 数据库命令
- 除插入、更新、删除或查询之外的 MongoDB 操作。有关数据库命令的列表,请参阅数据库命令。要使用数据库命令,请参阅发出命令。
- 数据库分析器
- 一种工具,启用后会在数据库的
system.profile
集合中保留所有长时间运行的操作的记录。分析器最常用于诊断慢查询。请参阅数据库分析器。 - 数据库文件路径
- MongoDB 数据文件存储的位置。请参阅
dbPath
。 - DDL(数据定义语言)
- DDL 包括用于创建和修改集合和索引的命令。
- DEK
- 数据加密密钥。更多详情,请参阅数据加密密钥。
- 延迟成员
- 无法成为主节点并在指定的延迟内应用操作的副本集节点。延迟可用于保护数据免受人为错误的影响(即无意中删除的数据库)或对生产数据库产生不可预见影响的更新。请参阅延迟的副本集节点。
- 文档
- MongoDB 集合中的一条记录,MongoDB 中数据的基本单位。文档类似于 JSON 对象,但以一种类型更丰富的格式(称为BSON)存在于数据库中。请参阅文档。
- 点符号
- MongoDB 使用点符号来访问数组的元素以及嵌入式文档的字段。请参阅点符号。
- 排干
- 将数据块从一个分片移除或“转移”到另一个分片的过程。管理员必须先清空分片,然后再将其从集群中删除。请参阅从现有分片集群中删除分片。
- 驱动
- 一种以特定语言与 MongoDB 交互的客户端库。请参阅驱动程序。
- 持久性
- 如果一个写入操作在一个或多个服务器进程关闭(或崩溃)和重新启动时仍然持续存在,则该操作就具有持久性。对于单个
mongod
服务器,写入操作在写入服务器的日志文件后被认为具有持久性。对于副本集,当写入操作在大多数投票节点上实现持久性并写入大多数投票节点的日志后,该写入操作被认为具有持久性。 - 选举
- 在启动时和出现故障时,副本集的节点选择主节点的进程。请参阅副本集选举。
- 字节序
- 在计算中,“字节序”指的是字节的排列顺序。这种排序可以指通过通信介质的传输,或者更常见的是,基于字节的重要性和位置,字节在计算机内存中的排序方式。有关详情,请参阅大端和小端。
- 信封加密
- 一种加密程序,其中使用数据加密密钥对数据进行加密,数据加密密钥由另一个称为客户主密钥的密钥加密。 加密的密钥作为 BSON 文档存储在一个名为 KeyVault 的 MongoDB 集合中。
- 最终一致性
- 分布式系统的一种属性,允许逐渐传播对系统的更改。在数据库系统中,这意味着可读成员不需要具有最新的更新。
- 显式加密
- 使用正在使用的加密时,请在处理加密数据时明确指定加密或解密操作、KeyID 以及查询类型(针对 Queryable Encryption)或算法(针对客户端字段级加密)。与自动加密相比。
- 表达式(expression)
解析为值的查询组件。表达式是无状态的,这意味着它们返回一个值而不会改变用于构建表达式的任何值。
在 MongoDB 查询语言中,您可以从以下组件构建表达式:
组件例子常量3
操作符字段路径表达式"$<path.to.field>"
例如,
{ $add: [ 3, "$inventory.total" ] }
是一个由$add
操作符和两个输入表达式组成的表达式:常量
3
字段路径表达式
"$inventory.total"
表达式返回将 3 添加到输入文档中路径
inventory.total
处的值的结果。- 故障切换
- 发生故障时,允许副本集的从节点变为主节点的过程。请参阅自动故障转移。
- 字段
- 文档中的名称/值对。一个文档具有零个或多个字段。字段类似于关系数据库中的列。请参阅文档结构。
- 字段路径
- 文档中字段的路径。要指定字段路径,请使用在字段名称前添加美元符号 (
$
) 的字符串。 - 防火墙
- 一种系统级网络过滤器,用于根据 IP 地址和其他参数来限制访问。防火墙是安全网络的一部分。请参阅防火墙。
- fsync
将内存中所有脏页刷新到存储的系统调用。当应用程序写入数据时,MongoDB 将数据记录在存储层。
为了提供持久数据,WiredTiger 使用检查点。有关详细信息,请参阅日志和 WiredTiger 存储引擎。
- geohash
- geohash 值是对坐标网格上位置的二进制表示形式。请参阅 Geohash 值。
- GeoJSON
- 一种基于 JavaScript 对象表示法 (JSON) 的地理空间数据交换格式。GeoJSON 可用于地理空间查询。有关受支持的 GeoJSON 对象,请参阅地理空间数据。有关 GeoJSON 格式规范,请参阅 https://tools.ietf.org/html/rfc7946#section-3.1。
- geospatial
- 与地理位置有关。请参阅地理空间查询。
- GridFS
- 在 MongoDB 数据库中存储大型文件的惯例。所有官方 MongoDB 驱动程序都支持 GridFS 惯例,
mongofiles
程序也是如此。请参阅用于自管理部署的 GridFS。 - 哈希片键
- 一种的分片键,它使用分片键字段中值的哈希值将文档在分片集群的成员之间分配。请参阅哈希索引。
- 健康管理器
- 健康管理器以指定的强度级别在健康管理器组件上运行健康检查。健康管理器检查按指定时间间隔运行。健康管理器可以配置为自动将出现故障的 mongos 移出集群。
- 健康管理器组件
- 一组功能,经过配置的健康管理器可以运行健康检查。例如,您可以配置健康管理器来自动监控和管理 DNS 或 LDAP 集群健康状况问题。有关详情,请参阅健康管理器组件。
- 隐藏成员
- 无法成为主节点且对客户端应用程序不可见的副本集节点。请参阅隐藏的副本集节点。
- 高可用性
高可用性是指系统设计具有持久性、冗余性和自动故障转移功能。系统支持的应用程序可以长期无故障运行。根据最佳实践部署时,MongoDB 副本集支持高可用性。
有关副本集部署架构的指导,请参阅副本集部署架构。
- idempotent
- 一个操作多次运行时,相同的输入会产生相同的结果。
- 正在使用的加密
- 一种加密:在数据传输、存储和处理过程中保护数据的安全,并实现对已加密数据进行受支持查询。MongoDB 提供两种“正在使用的加密”方法:Queryable Encryption 和客户端字段级加密。
- 索引(index)
- 一种优化查询的数据结构。请参见索引。
- 索引边界
- MongoDB 使用索引运行查询时搜索的索引值范围。要了解详情,请参阅多键索引边界。
- 索引排序
- 索引提供排序结果的排序。使用索引的排序操作通常比阻塞排序性能更好。有关更多信息,请参阅使用索引对查询结果进行排序。
- init script
- Linux 平台的初始化系统用来启动、重启或停止守护进程的 shell 脚本。如果您通过软件包管理器安装 MongoDB,则会在安装过程中为您的系统提供一个初始化脚本。请参阅操作系统的相应安装指南。
- 初始化系统
- 初始化系统是 Linux 平台上自内核启动后第一个启动的进程,负责管理系统上的所有其他进程。初始化系统使用初始化脚本启动、重启或停止守护进程,例如
mongod
或mongos
。最近的 Linux 版本通常使用 systemd 初始化系统和systemctl
命令。Linux 旧版本通常使用 System V 初始化系统和service
命令。请参阅操作系统的安装指南。 - 初始化同步
- 将数据从现有副本集节点复制到新的副本集节点的副本集操作。请参阅 初始同步。
- 意向锁
- 资源上的锁,指示锁持有者将使用比具有意向锁的资源更细粒度的并发控制来读取(意向共享)或写入(意向独占)资源。意向锁允许并发读取和写入资源。请参阅 MongoDB 使用哪种类型的锁定?
- 中断点
- 某个操作可以安全终止的时间点。MongoDB 仅在指定的中断点终止操作。请参阅终止正在运行的操作。
- IPv6
- IP(互联网协议)标准的修订版,具有大地址空间以支持互联网主机。
- ISODate
mongosh
用于显示日期的国际日期格式。格式为YYYY-MM-DD HH:MM.SS.millis
。- JavaScript
- 一种脚本语言。mongosh、旧版
mongo
Shell 和某些服务器端功能使用 JavaScript 解释器。有关更多信息,请参阅服务器端 JavaScript。 - journal
- 一个顺序二进制事务日志,用于在硬中止时使数据库进入有效状态。日志首先将数据写入日志,然后写入核心数据文件。MongoDB 默认为 MongoDB 2.0 及更高版本的 64 位构建启用日志功能。日志文件已预先分配,并作为文件存在于 数据目录 中。请参阅 日志。
- JSON
- JavaScript Object Notation。一种纯文本格式,用于表达结构化数据,并支持多种编程语言。有关更多信息,请参阅 http://www.json.org。某些 MongoDB 工具以 JSON 格式渲染 MongoDB BSON 文档的近似值。请参阅 MongoDB 扩展 JSON (v2)。
- JSON文档
- JSON 文档是结构化格式的字段和值的集合。有关示例 JSON 文档,请参阅 http://json.org/example.html。
- JSONP
- JSON with Padding(带填充的 JSON)。指一种将 JSON 注入到应用程序中的方法。存在潜在的安全问题。
- 巨型块
- 增长超过指定数据块大小且无法分割为更小数据块的数据块。有关详细信息,请参阅不可分割/巨型数据块。
- 密钥材料
- 加密算法用于加密和解密数据的随机位串。
- 密钥保管库集合
- 一个 MongoDB 集合,可将加密的数据加密密钥存储为 BSON 文档。
- 最低权限
- 一种授权策略,仅为用户授予该用户的工作所需的访问权限。
- 传统坐标对
- MongoDB 2.4 版之前用于地理空间数据的格式。这种格式将地理空间数据存储为平面坐标系上的点(例如
[ x, y ]
)。请参阅地理空间查询。 - 线串(LineString)
- 线串(LineString)是包含两个或更多位置的数组。如 GeoJSON LineString 规范所述,具有四个或更多位置的封闭线串称为线环 (LinearRing):https://tools.ietf.org/html/rfc7946#section-3.1.4。要在 MongoDB 中使用线串,请参阅 GeoJSON 对象。
- 小端
一种字节顺序,多字节数据值的最低有效字节(小端)存储在最低内存解决。
点击放大- 锁
- MongoDB 使用锁确保并发性不会影响正确性。MongoDB 使用读锁、写锁和意向锁。有关更多信息,请参阅 MongoDB 使用哪种类型的锁?
- 日志文件
- 包含服务器事件,例如传入连接、运行的命令以及遇到的问题。有关详细信息,请参阅日志消息。
- LVM
- 逻辑卷管理器。逻辑卷管理器是一个从物理设备中提取磁盘映像的程序,并提供许多对系统管理有用的原始磁盘操作和快照功能。有关逻辑卷管理器和 MongoDB 的信息,请参阅在 Linux 上使用逻辑卷管理器进行备份和恢复。
- map-reduce
- 一种聚合过程,由选择数据的“映射”(map) 阶段和转换数据的“缩减”(reduce) 阶段组成。在 MongoDB 中,您可以使用 map-reduce 对数据运行任意聚合。有关 map-reduce 的实现,请参阅 Map-Reduce。有关聚合的所有方法,请参阅聚合操作。
- 映射类型
- 编程语言中将键与值相关联的结构。键可以包含嵌入的键和值对(例如,字典、哈希、映射和关联数组)。这些结构的属性取决于语言规范和实施。通常,映射类型中键的顺序是任意的,不保证一致性。
- MD5
- 一种哈希算法,可计算所提供数据的校验和。该算法会返回一个唯一值来识别数据。MongoDB 使用 md5 来识别 GridFS 的数据块。请参阅 filemd 5。
- 平均数
- 一组数字的平均值。
- 中位数
- 在数据集中,中位数是百分位数值,其中 50% 的数据小于或等于该值。
- 成员
- 一个单独的 mongod 进程。一个副本集有多个成员。成员也称为节点。
- metadata collection
- 在可查询加密中,MongoDB 使用内部集合来支持对加密字段的查询。请参阅元数据集合。
- MIME
- 多用途互联网邮件扩展。一组标准的类型和编码定义,用于声明多个数据存储、传输和电子邮件上下文中的数据编码和类型。
mongofiles
工具提供了一个选项,用于指定 MIME 类型以描述插入到 Grid FS 存储空间中的文件。 - 模式
- 一组数字中出现次数最多的数字。
- mongo
旧版 MongoDB shell。
mongo
进程将旧版 Shell 作为连接到mongod
或mongos
实例的守护进程启动。Shell 有一个 JavaScript 接口。从 MongoDB v 5.0 开始,
mongo
已被弃用,mongosh 取代mongo
成为客户端 shell。 请参阅 mongosh。- mongod
- MongoDB 数据库服务器。
mongod
进程将 MongoDB 服务器作为守护进程启动。MongoDB 服务器管理数据请求和后台操作。参见mongod
。 - mongos
- MongoDB 分片集群查询路由器。
mongos
进程将 MongoDB 路由器作为守护进程启动。MongoDB 路由器充当应用程序和 MongoDB 分片集群之间的接口,负责处理集群上的所有路由和负载平衡。请参阅mongos
。 - mongosh
- namespace
- 命名空间是数据库名称和集合或索引名称的组合:
<database-name>.<collection-or-index-name>
。所有文档都属于一个命名空间。请参阅命名空间。 - 自然顺序
创建订单
recordIds
并将其存储在 WiredTiger 索引中。在单个实例上运行集合扫描时,默认排序顺序为自然顺序。在副本集中,自然顺序不能保证一致,并且在节点之间可能不同。
在分片集合中,自然顺序没有定义。但是,使用
$natural
仍会强制每个分片执行集合扫描。- 网络分区
一种网络故障,将分布式系统分为多个分区,导致一个分区中的节点无法与另一个分区中的节点进行通信。
有时是部分分区或不对称分区。部分分区的一个示例是将网络的节点分为三个节点集,其中第一个节点集的成员无法与第二个节点集的成员通信,反之亦然,但所有节点都可以与第三个节点集的成员通信。
在不对称分区中,只有当通信源自某些节点时,才可能进行通信。例如,分区一端的节点只有在发起通信信道时才能与另一端通信。
- node
- 单独的 mongod 进程。一个 副本集有多个节点。节点也称为结点。
- noop
- 无操作 (noop) 是一种 I/O 操作调度程序,它根据先进先出队列为传入进程分配 I/O 带宽。
- NVMe
- NVMe(非易失性内存主机控制器接口规范)是一种用于访问高速存储媒体的协议。
- 对象标识符
- 参阅ObjectId。
- ObjectId
- 一个 12 字节的 BSON 类型,在一个集合内是唯一的。ObjectId 是使用时间戳、计算机 ID、进程 ID 和进程本地递增计数器生成的。MongoDB 使用 ObjectId 值作为 _id 字段的默认值。
- 操作日志
- 请参阅 oplog。
- ops/sec
- 请参阅 optime。
- 运算符
- 以
$
开头的关键字,用于表示更新、复杂查询或数据转换。例如,$gt
是查询语言的“大于”操作符。有关可用的操作符,请参阅操作符。 - oplog
- 一个固定大小集合,用于存储对 MongoDB 数据库的逻辑写入的有序历史记录。Oplog 是 MongoDB 中实现复制的基本机制。请参阅副本集 Oplog。
- oplog hole
- 由于 oplog 写入未按顺序,因此 oplog 中出现临时缝隙。副本集主节点将 oplog 条目作为批处理操作并行应用。因此,批处理中尚未写入的条目可能会在 oplog 中出现临时缝隙。
- oplog 窗口
- oplog 条目带有时间戳。oplog window 是
oplog
中最新和最旧时间戳之间的时间差。如果从节点与主节点失去连接,则只有在 oplog window 内恢复连接后,它才能使用复制再次进行同步。 - ops/sec
对复制 oplog 中位置的引用。optime 值是一个包含以下内容的文档:
- 有顺序的查询计划
- 一种查询计划,其返回结果的顺序与
sort()
顺序一致。请参阅查询计划。 - 孤立游标
- 应用程序代码中未正确关闭或迭代的游标。孤立游标可能导致 MongoDB 部署中出现性能问题。
- 孤立文档
在分片集群中,孤立文档是指位于某个分片上但同时以数据段形式存在于其他分片上的文档。这是由于异常关闭导致的迁移失败或迁移清理不完整造成的。
数据块迁移完成后,会自动清理孤立文档。您不再需要运行
cleanupOrphaned
来删除孤立文档。- 消极成员
- 副本集的节点,由于其
members[n].priority
为0
,因此其无法成为主节点。请参阅 优先级 0 副本集节点。 - 百分位数
- 在数据集中,百分位数是指数据百分比等于或低于指定值的值。有关详细信息,请参阅计算注意事项。
- PID
- 一种进程标识符。类 UNIX 系统将为每个正在运行的进程分配一个唯一整数 PID。您可以使用 PID 来检查正在运行的进程并向其发送信号。请参阅
/proc
文件系统。 - 管道
- 类 Unix 系统中的一种通信通道,允许独立进程发送和接收数据。在 UNIX Shell 中,管道操作允许用户将一个命令的输出定向到另一个命令的输入。
- 管道
- 聚合中的一系列操作。请参阅聚合管道。
- 点
- 如 GeoJSON Point 规范中所述的单一坐标对:https://tools.ietf.org/html/rfc7946#section-3.1.2。要在 MongoDB 中使用点,请参阅 GeoJSON 对象。
- 多边形
LinearRing 坐标数组中的一个数组,如 GeoJSON Polygon 规范中所述:https://tools.ietf.org/html/rfc7946#section-3.1.6。对于有多个环的多边形,第一个环必须是外环,其他环必须是内环或孔。
MongoDB 不允许外环自相交。内环必须完全包含在外边界内,并且不能彼此相交或重叠。请参阅 GeoJSON 对象。
- 后图像文档
- 插入、替换或更新后的文档。请参阅提供文档前像和后像的变更流。
- powerOf2Sizes
- 每个集合的设置,为每个文档分配空间,最大限度地重复使用存储空间并减少碎片。
powerOf2Sizes
是 TTL 集合的默认设置。如要更改集合设置,请参阅collMod
。 - 前图像文档
- 被替换、更新或删除之前的文档。请参阅带文档前像和后像的变更流。
- 预分片
- 在插入数据之前执行的一项操作,它可将可能的分片键值范围划分为若干数据块,从而实现轻松插入和高写入吞吐量。在某些情况下,预分片可通过手动划分集合而不是等待 MongoDB 负载均衡器操作,以便加快分片集群中文档的初始分发。请参阅在分片集群中创建范围。
- 前缀压缩
- 通过在内存的每个页面中仅存储一次所有相同的索引键前缀,从而降低内存与磁盘的使用量。请参阅压缩以了解有关 WiredTiger 压缩行为的更多信息。
- 主节点
- 在副本集中,主节点是接收所有写入操作的成员。请参阅主节点。
- 主键
- 记录的唯一不可变标识符。在 RDBMS 软件中,主键通常是存储在每行的
id
字段中的整数。在 MongoDB 中,_id 字段存储文档的主键,通常是 BSON ObjectId。 - 主分片
- 存储所有未分片集合的分片。请参阅主分片。
- 优先级
- 一个可配置的值,可帮助确定副本集中的哪些成员最有可能成为主节点。参见
members[n].priority
。 - 特权
- 指定资源和允许对该资源执行的操作的组合。请参阅特权。
- 投影
- 提供给查询的文档,用于指定 MongoDB 在结果集中返回哪些字段。有关投影的更多信息,请参阅投影要从查询中返回的字段和项目操作符。
- 查询
- 一个读请求。MongoDB 使用 JSON 形式的查询语言,其中包括名称以
$
字符开头的查询操作符。在mongosh
中,您可以使用db.collection.find()
和db.collection.findOne()
方法运行查询。请参阅查询文档。 - 查询框架
- 处理操作的查询优化器和查询执行引擎的组合。
- 查询运算符
- 查询中以
$
开头的关键字。例如,$gt
是“大于”运算符。有关查询运算符的列表,请参阅查询运算符。 - 查询优化器
- 生成查询计划的过程。对于每个查询,优化器都会生成一个计划,该计划将查询与索引进行匹配,以尽可能高效地返回结果。优化器在每次查询运行时重复使用该查询计划。如果集合发生重大更改,优化器将创建新的查询计划。请参阅查询计划。
- 查询计划
- 查询规划器选择的最有效的执行计划。更多详细信息,请参阅查询计划。
- 查询谓词。
返回布尔值的表达式,该布尔值指示文档是否与指定的查询匹配。例如,
{ name: { $eq: "Alice" } }
会返回具有字段"name"
且其值为字符串"Alice"
的文档。查询谓词可以包含子表达式和操作符,以实现更复杂的匹配。要查看可用的查询操作符,请参阅查询和投影操作符。
- 查询结构
查询谓词、排序、投影和排序规则的组合。查询结构允许 MongoDB 识别逻辑上等效的查询并分析其性能。
关于查询谓词,只有谓词的结构(包括字段名)重要,查询谓词的值无关紧要。因此,对于一个查询结构,查询谓词
{ type: 'food' }
等效于查询谓词{ type: 'utensil' }
。为帮助识别具有相同查询结构的慢查询,每个查询结构都与一个 queryHash 相关联。
queryHash
是一个十六进制字符串,表示查询结构的哈希值,并且仅依赖于查询结构。注意
与任何哈希函数一样,两个不同的查询结构可能会产生相同的哈希值。但是,不同查询结构之间不太可能发生哈希冲突。
- 范围
- 一个数据块中连续的分片键值范围。数据范围包括下边界,不包括上边界。当某个分片包含的集合数据相对其他分片太多时,MongoDB 会迁移数据。请参阅使用数据块进行数据分区和分片集群负载均衡器。
- RDBMS
- 关系数据库管理系统。基于关系模型的数据库管理系统,通常使用 SQL 作为查询语言。
- 读关注 (read concern)
- 指定读操作的隔离级别。例如,您可以使用读关注来仅读取已传播到副本集多数节点的数据。请参阅读关注。
- 读锁
- 资源(例如集合或数据库)上的共享锁,在持有该锁时,允许并发读取但不允许写入。请参阅 MongoDB 使用哪种类型的锁定?
- 读取偏好
- 决定客户端如何引导读取操作的设置。读取偏好会影响所有副本集,包括分片副本集。默认情况下,MongoDB 将读取操作引导至主节点。但是,您也可以将读取操作引导至从节点,以实现最终一致的读取。请参阅读取偏好。
- 恢复
- 副本集节点状态,表明节点尚未准备好开始从节点或主节点的正常活动。恢复节点不可用于读取。
- 复制集
- 实施复制和自动故障转移的 MongoDB server 集群。MongoDB 推荐的复制策略。请参阅复制。
- 复制
- 该功能允许多个数据库服务器共享相同数据。复制可确保数据冗余并实现负载均衡。请参阅复制。
- 复制延迟
- 主节点 oplog 最后一个操作与特定从节点最后一个操作之间的时间段。您通常希望尽可能缩短复制延迟时间。请参阅复制延迟。
- 常驻内存
- 当前存储在物理 RAM 中的应用程序内存的子集。常驻内存是虚拟内存的一个子集,它包括映射到物理 RAM 和存储的内存。
- resource
- 数据库、集合、一组集合或集群。权限允许对指定资源进行操作。请参阅资源。
- 角色
- 一组特权,允许操作指定资源。分配给用户的角色决定了用户对资源和操作的访问权限。请参阅安全性。
- rollback
- 恢复写入操作以确保所有副本集节点的一致性的过程。请参阅副本集故障转移期间的回滚。
- 从节点
- 复制主数据库内容的副本集成员。从节点成员可以运行读取请求,但只有主节点成员可以运行写入操作。请参阅从节点。
- 二级索引
- 一种数据库索引,最大限度地减少查询引擎为运行查询而必须执行的工作量,从而提高查询性能。请参见索引。
- 从节点
- 参见从节点。也称为二级节点。
- 种子列表
- 驱动程序和客户端(如
mongosh
)为副本集配置的初始发现而使用种子列表。种子列表可以作为host:port
对列表提供(请参阅标准连接字符串格式)或通过 DNS 条目提供。有关更多信息,请参阅 SRV 连接格式。 - 自管理(Self-managed)
- 由个人或组织而不是外部管理或第三方服务(例如 MongoDB Atlas )设立和维护的 MongoDB 实例。
- 集名称
- 为副本集指定的任意名称。副本集的所有成员必须具有相同名称,该名称通过
replSetName
设置或--replSet
选项指定。 - 分片
- 单个
mongod
实例或副本集,用于存储分片集群总数据集中某些部分。通常,在生产部署中,确保所有分片都是副本集的一部分。请参阅分片。 - 片键
- MongoDB 用来在分片集群的节点间分发文档的字段。请参阅分片键。
- 分片集群
- 包含分片 MongoDB 部署的一组节点。分片群集由配置服务器、分片和一个或多个
mongos
路由进程组成。请参阅分片集群组件。 - 分片
- 一种按键范围对数据进行分区并将数据分布于两个或更多数据库实例的数据库架构。分片可以实现水平扩展。请参阅分片。
- shell 助手
mongosh
中的一种方法,可为数据库命令提供更简洁的语法。 Shell 助手改进了总体交互体验。请参阅mongosh
方法。- 单主复制
- 一种复制拓扑结构,其中只有一个数据库实例接受写入。单主复制可确保一致性,是 MongoDB 采用的复制拓扑结构。请参阅副本集主节点。
- snappy
- 压缩/解压缩库,平衡高效计算要求与合理的压缩率。Snappy 是 MongoDB 使用 WiredTiger 的默认压缩库。有关更多信息,请参阅 Snappy 和 WiredTiger 压缩文档。
- snapshot
- 快照是
mongod
实例中某一特定时间点的数据副本。您可以检索整个集群或副本集的快照元数据,或者集群中单个配置服务器的快照元数据。 - 排序键
- 对字段进行排序时所比较的值。要了解 MongoDB 如何确定非数字字段的排序键,请参阅比较/排序顺序。
- 拆分
- 分片集群中数据块之间的划分。请参阅使用数据块进行数据分区。
- SQL
- 结构化查询语言 (SQL) 用于与关系数据库进行交互。
- 固态硬盘
- 固态硬盘。一种高性能存储,它通过固态电子器件实现持久性,而不是通过机械硬盘所使用的旋转盘片和可移动读/写头。
- stale read
- 过时读取是指在事务过程中读取到、已被其他事务修改但尚未提交到数据库的过时数据。
- 单节点
mongod
的一个实例,作为单个服务器运行,而非副本集的一部分运行。要将其转换为副本集,请参阅将独立自管理 mongod 转换为副本集。- 储藏集合
- 重分片时可能创建的临时集合。重分片成功完成后,在操作过程中创建的任何储藏集合都会被移除。
- 降级
如果副本集与主节点失去联系,则从节点会选举新的主节点。当旧的主节点获知选举结果时,它会降级并作为从节点重新加入副本集。
如果用户运行
replSetStepDown
命令,主节点将降级,并强制副本集选举新的主节点。
- 存储引擎
- 数据库中负责管理内存和磁盘中数据存储和访问方式的部分。不同存储引擎的性能表现因工作负载而异。有关 MongoDB 中内置存储引擎的具体详细信息,请参阅适用于托管部署的存储引擎。
- 存储顺序
- 请参阅自然顺序。。
- 严格一致性
- 分布式系统的一个属性,要求所有节点都包含系统的最新变更。在数据库系统中,这意味着可以提供数据的任何系统都必须包含最新写入内容。
- 主题备用名称
- 主题备用名称 (SAN) 是 X.509 证书的扩展项,允许使用 IP 地址和域名等值的数组来指定单个安全证书可以保护的资源。
- 同步
- 一种副本集操作:节点从主节点复制数据。同步首先发生在 MongoDB 创建或恢复节点时,称为初始同步。接着同步持续进行,以使该节点随时了解副本集数据的变化。请参阅副本集数据同步。
- syslog
- 在类 UNIX 系统上,为服务器和进程提交日志信息提供统一标准的一种日志记录进程。MongoDB 提供将输出发送到主机的系统日志系统的选项。请参阅
syslogFacility
。 - tag
应用于副本集节点的标签,由客户端用来执行数据中心感知操作。有关对副本集使用标签的更多信息,请参阅读取偏好标签集列表。
- tag set
- 包含零个或多个标签的文档。
- 可追加游标
- 对于固定大小集合,可跟踪游标是指在客户端用完初始游标中的结果后仍保持打开状态的游标。当客户向固定大小集合集合中插入新文档时,可移动游标会继续检索文档。
- 任期
- 对于副本集的节点,这是一个单调递增的数字,对应于一次选举尝试。
- 时间序列集合
- 有效存储一段时间内的测量序列的集合。请参阅时间序列。
- 拓扑结构
MongoDB 实例的部署状态。包括:
- 事务
- 一系列读取或写入操作。有关详细信息,请参阅事务。
- 事务协调器
- MongoDB 的一个组件,用于管理副本集或分片集群中的事务。它可以协调跨节点多文档事务的执行和完成,并支持按原子操作来处理复杂操作。
- 制表符分隔值 (TSV)
- 一种基于文本的数据格式,由制表符分隔的值组成。这种格式通常用于关系数据库之间的数据交换,因为该格式非常适合处理表格数据。您可以使用
mongoimport
导入 TSV 文件。 - TTL
- 生存时间 (TTL) 是在给定信息过期或系统将其删除之前保留在缓存或其他临时存储中的到期时间或期限。MongoDB 具有 TTL 集合功能。请参阅通过设置 TTL 使集合中的数据过期。
- 无界数组
- 随着时间推移不断变大的数组。如果文档字段值是一个无界数组,该数组可能会对性能产生负面影响。通常,设计的模式需要避免无界数组。
- 唯一索引
- 在单个集合中为特定字段实施唯一性的索引。请参阅唯一索引。
- unix epoch
- 世界标准时间 1970 年 1 月 1 日 00:00:00。常用于表示时间,即从该时间点开始计算的秒数或毫秒数。
- 无序查询计划
- 一种查询计划,其返回结果的顺序与
sort()
顺序不一致。请参见查询计划。 - 更新插入
用于更新操作的选项。例如:
db.collection.updateOne()
、db.collection.findAndModify()
。如果 upsert 为true
,则更新操作执行以下任一操作:更新与查询匹配的文档。
或者,如果没有匹配的文档,则插入一个新文档。新文档具有在更新操作中指定的字段值。
有关 upsert 的更多信息,请参阅若没有匹配文档则插入新文档 (
Upsert
)。- 虚拟内存
- 应用程序的工作内存,通常驻留在磁盘和物理 RAM 中。
- WGS84
- MongoDB 处理 GeoJSON 对象的地理空间查询时,默认采用的参考系和大地基准面,用于在类似地球的球面上进行几何计算。请参阅“EPSG:4326: WGS 84”规范:http://spatialreference.org/ref/epsg/4326 /。
- 窗口操作符
- 返回集合中一系列文档的值。参见窗口运算符。
- 工作集
- MongoDB 最常使用的数据。
- 写入安全机制
- 指定写入操作是否已成功。写关注允许应用程序检测插入错误或不可用的
mongod
实例。对于副本集 ,您可以配置写关注以确认复制到指定数量的节点。请参阅写关注。 - 写冲突 (write conflict)
- 两个并发操作(其中至少有一个是写入操作)尝试使用一个资源,这种情况违反了使用乐观并发控制的存储引擎的约束条件。MongoDB 会自动结束并重试其中一个冲突的写入操作。
- 写锁
- 对资源(例如集合或数据库)的独占锁。进程写入资源时,会使用独占写锁来防止其他进程写入或读取该资源。有关锁的更多信息,请参阅常见问题解答:并发。
- 写回
- 分片系统中的一个流程,确保发送到不负责相关数据块的分片的写操作被应用到正确的分片上。更多信息,请参阅日志中的
writebacklisten
是什么意思?和 writeBacksQueued。 - zlib
- 较之 MongoDB 会使用 snappy,此数据压缩库可提供更高的压缩率,但会消耗更多的 CPU。您可以配置 WiredTiger 以将 zlib 作为其压缩库。有关详细信息,请参阅 http://www.zlib.net 和 WiredTiger 压缩文档。
- 区域
基于给定分片集合的分片键值范围的文档分组。分片集群中的每个分片都可以位于一个或多个区域中。在均衡集群中,MongoDB 仅将区域覆盖的读取和写入定向到该区域内的那些分片。有关更多信息,请参阅区域手册页面。
在 MongoDB 3.2 中,区域取代了标签所描述的功能。
- zstd
- 一种数据压缩库,与 zlib 相比可提供更高的压缩率和更低的 CPU 使用率。