术语表
注意
有关MongoDB Atlas,云中MongoDB部署的完全托管服务,请在Atlas文档中的术语表中查看。
- $cmd
- 一个虚拟的集合,公开MongoDB的数据库命令。要使用数据库命令,请参阅发布命令.
- _id
- 每个MongoDB 文档中必需的字段。_id字段必须有一个唯一的值。你可以把_ id字段看作是文档的主键。如果你创建一个没有_ id字段的新文档,MongoDB会自动创建该字段,并为字段分配一个唯一的BSON ObjectId。
_id
字段 - 累加器
- 聚合管道中的一个表达式,它维护聚合管道中各个文档之间的状态。有关累加器操作的列表,请参阅
$group
。 - 操作
- 用户可以对资源执行的操作。操作和资源结合以创建权限。请参阅操作。
- 管理员数据库
- 一个具有特权的数据库。用户必须有权访问
admin
数据库才能运行某些管理命令。有关管理命令的列表,请参阅管理命令。 - 高级持续性威胁
- 在安全方面,攻击者获取并维持对网络、磁盘和/或内存的长期访问,并在较长时间内未被检测到。
- 聚合
- 一种减少和总结大量数据集的操作。MongoDB的
aggregate()
和mapReduce()
方法是聚合操作的示例。有关更多信息,请参阅聚合操作。 - 聚合管道
- 由一个或多个处理文档的阶段组成。聚合运算符计算聚合值,而不必使用map-reduce。有关运算符的列表,请参阅聚合参考。
- 仲裁者
- 一个仅存在于副本集中以投票的成员。仲裁者不复制数据。仲裁者参与主的选举,但不能成为主。有关更多详细信息,请参阅副本集仲裁者。
- Atlas
- MongoDB Atlas 是一种云托管数据库即服务。
- 原子操作
- 原子操作是指要么完全完成,要么完全不完成的写操作。对于涉及对多个文档进行写入的分布式事务,每个文档的所有写入都必须成功,事务才能成功。原子操作不能部分完成。请参阅原子性和事务。
- 身份验证
- 用户身份的验证。请参阅自管理部署的身份验证。
- 授权
- 提供对数据库和操作的访问权限。请参阅自管理部署中的基于角色的访问控制。
- 自动加密
- 使用使用中加密时,会根据您预先配置的加密方案自动执行加密和解密操作。自动加密共享库将 MongoDB 查询语言转换为正确的调用,这意味着您不需要为特定的加密和解密调用重写应用程序。
- B树
- 数据库管理系统常用的一种数据结构,用于存储索引。MongoDB 使用 B树索引。
- 备份游标
- 指向备份文件列表的游标。备份游标仅用于内部使用。
- 平衡器
- 在分片集群的上下文中运行的内部 MongoDB 进程,负责管理数据块的迁移。管理员必须禁用所有分片集群维护操作中的平衡器。请参阅分片集群平衡器。
- 大端序
一种字节序,其中多字节数据值的最重要字节(大端)存储在最低的内存地址。
点击放大- 阻塞排序
必须在返回输出之前在内存中执行排序。阻塞排序可能会影响大数据集的性能。使用索引排序以避免阻塞排序。
有关阻塞排序操作的更多信息,请参阅排序和索引使用。
- 有限集合扫描
- 查询优化器使用的一种计划,它排除了具有特定字段值范围的文档。例如,如果日期字段值范围超出了指定的日期范围,则该范围内的文档将被排除在查询计划之外。请参阅集合扫描。
- BSON
- BSON 是一种用于在 MongoDB 中存储 文档 并进行远程过程调用的序列化格式。"BSON" 是 "binary" 和 "JSON" 这两个单词的组合。将 BSON 视为 JSON(JavaScript Object Notation)文档的二进制表示。请参阅BSON 类型 和MongoDB 扩展 JSON(v2)。
- BSON 类型
- 支持BSON序列化格式的类型集合。有关BSON类型的列表,请参阅BSON类型。
- 一致性定理
- 给定计算系统的三个特性:一致性、可用性和分区容错性,分布式计算系统可以提供这些特性的任意两个,但不能同时提供全部三个。
- 固定大小集合
- 一个固定大小的集合,当集合达到其最大大小时会自动覆盖其最旧的条目。在复制中使用的是MongoDB的oplog。有关详细信息,请参阅固定大小集合。
- 基数
- 衡量一组值中元素数量的度量。例如,集合
A = { 2, 4, 6 }
包含3个元素,其基数为3。有关分片键基数的信息,请参阅分片键基数。 - 笛卡尔积
- 结合两个数据集的结果,其中结合的集合包含所有可能的值组合。
- cfq
- 完全公平排队(cfq)是一种I/O操作调度程序,它为传入请求进程分配带宽。
- 校验和
- 用于确保数据完整性的计算值。MD5算法有时用作校验和。
- 数据块
- 在分片中,分片键值的连续范围。数据块范围包括下界,不包括上界。当数据块的大小超过配置的数据块大小时,MongoDB会分割数据块。默认数据块大小为128兆字节。当某个分片包含相对于其他分片过多的集合数据块时,MongoDB会迁移数据块。有关详细信息,请参阅使用数据块的数据分区、分片集群平衡器和管理分片集群平衡器。
- 客户端
使用数据库进行数据持久化和存储的应用层。驱动程序在应用层和数据库服务器之间提供接口级别。
客户端也可以是单个线程或进程。
- 客户端亲和力
- 对指定数据源的一致客户端连接。
- 集群
- 参阅分片集群。
- 集群间同步
- 同步分片集群之间的数据。也称为C2C同步。
- 聚集集合
- 一个按聚集索引键排序的集合。参阅聚集集合。
- CMK
- 客户主密钥的缩写,见 客户主密钥。
- 集合
- 一组MongoDB 文档。集合相当于RDBMS表。一个集合位于一个数据库中。集合不强制执行模式。集合中的文档可以有不同的字段。通常,集合中的文档具有相似或相关的目的。见 命名空间。
- 集合扫描
- 集合扫描是一种查询执行策略,其中MongoDB必须检查集合中的每个文档以确定其是否与查询条件匹配。这些查询非常低效,不使用索引。有关查询执行策略的详细信息,请参阅查询优化。
- 提交
- 保存从
startSession
命令开始后的数据更改。事务中的操作在通过commitTransaction
命令提交之前不是永久的。 - 提交法定人数
- 在索引构建期间,提交法定人数指定在主节点执行提交之前,必须有多少个副本节点准备好提交其本地索引构建。
- 组合索引
- 由两个或更多键组成的索引。见组合索引。
- 并发控制
- 并发控制确保数据库操作可以并发执行,而不会损害正确性。悲观并发控制,如使用锁的系统所使用的那样,会阻止任何可能冲突的操作,即使它们可能不会冲突。乐观并发控制,即WiredTiger所采用的方法,会在冲突可能发生之后才进行检查,结束并重试任何写冲突中的一个操作。
- 配置数据库
- 一个内部数据库,包含分片集群的元数据。通常,您不会修改
config
数据库。有关config
数据库的更多信息,请参阅配置数据库。 - 配置服务器
- 一个存储与分片集群关联的所有元数据的
mongod
实例。见配置服务器。 - 配置分片
- 一个存储与分片集群关联的所有元数据,并且还可以存储应用程序数据的
mongod
实例。见配置分片。 - 连接池
- 由驱动程序维护的数据库连接缓存。当需要连接到数据库时,将重用缓存的连接,而不是打开新的连接。
- 连接风暴
- 一种场景,即驱动程序尝试打开比部署能处理的更多连接。当新连接请求失败时,驱动程序会要求建立更多连接,以响应部署变慢或无法打开新连接。这些持续请求可能会超载部署,导致故障。
- 容器
- 一组软件及其依赖库的集合,打包在一起以简化在不同计算环境之间的迁移。容器作为在您的操作系统上运行的隔离进程运行,可以为其指定自己的资源限制。常见的容器技术有Docker和Kubernetes。
- 竞争因子
- 多个操作尝试修改同一资源,例如文档字段,导致冲突并延迟操作。竞争因子是与可查询加密一起使用的设置,用于内部分区加密的字段/值对并优化操作。请参阅竞争。
- CRUD
- 数据库基本操作的缩写:创建、读取、更新和删除。请参阅MongoDB CRUD操作。
- CSV
- 一种以逗号分隔值的文本数据格式。CSV文件可以用于在关系数据库之间交换数据,因为CSV文件具有表格数据。您可以使用
mongoimport
导入CSV文件。 - 游标
- 指向查询结果集的指针。客户端可以遍历游标以检索结果。默认情况下,10分钟后无活动,未在会话中打开的游标将自动超时。在会话中打开的游标将在会话结束或超时后关闭。请参阅在mongosh中遍历游标。
- 客户主密钥
- 用于加密您的数据加密密钥的密钥。客户主密钥必须托管在远程密钥提供程序上。
- 守护进程
- 一个后台、非交互式进程。
- 数据目录
- 存储数据文件的文件系统位置,
mongod
将其存储在此处。dbPath
指定数据目录。 - 数据加密密钥
- 您用于加密MongoDB文档中的字段的密钥。加密的数据加密密钥存储在您的密钥保管库集合中。数据加密密钥由客户主密钥加密。
- 数据文件
- 存储文档数据和索引。通过
dbPath
选项指定数据文件的文件系统位置。 - 数据分区
- 一种分布式系统架构,将数据分割成范围。分区用于分片。请参阅使用数据分块的数据分区。
- 数据中心意识
- 允许客户端根据成员位置在系统中定位成员的属性。《副本集》通过使用《标签》实现数据中心感知。有关数据中心感知的详细信息,请参阅《数据中心感知》。
- 数据库
- 用于存储《集合》的容器。每个数据库在文件系统中都有自己的文件集。一个MongoDB服务器通常有多个数据库。
- 数据库命令
- MongoDB操作,除了插入、更新、删除或查询。有关数据库命令的列表,请参阅《数据库命令》。有关使用数据库命令的说明,请参阅《发出命令》。
- 数据库外泄
- 数据库外泄是指授权方从受保护系统中获取数据,并将其与未授权方共享或存储在非安全系统上。这可能是恶意的或意外的。
- 数据库分析器
- 一个工具,当启用时,会记录数据库
system.profile
集合中所有长时间运行的操作。分析器最常用于诊断慢查询。请参阅《数据库分析器》。 - dbpath
- MongoDB数据文件存储的位置。请参阅
dbPath
。 - DDL(数据定义语言)
- DDL包括创建和修改集合和索引的命令。
- 专用配置服务器
- 一个只存储与分片集群相关的所有元数据的
mongod
实例。 - DEK
- 数据加密密钥。有关详细信息,请参阅《数据加密密钥》。
- 延迟成员
- 一个副本集成员,不能成为主节点,并按指定延迟应用操作。延迟对于保护数据免受人为错误(意外删除数据库)或对生产数据库产生不可预见影响的事务更新很有用。请参阅《延迟副本集成员》。
- 文档
- MongoDB 集合中的记录和MongoDB中的基本数据单元。文档类似于JSON对象,但在数据库中以更丰富的格式存在,称为BSON。请参阅《文档》。
- 点表示法
- MongoDB使用点表示法来访问数组的元素和访问嵌套文档的字段。请参阅《点表示法》。
- draining
- 从分片移除或“剥离”数据块到另一个分片的过程。管理员在从集群中删除分片之前必须将分片移除。请参阅《从分片集群中删除分片》。
- 驱动程序
- 针对特定计算机语言的MongoDB交互客户端库。参见驱动。
- 持久性
- 当一个写操作在服务器进程关闭(或崩溃)后重新启动后仍能持久存在时,该写操作被认为是持久的。对于单个
mongod
服务器,当写操作已写入服务器的日志文件时,该写操作被认为是持久的。对于副本集,当一个写操作在大多数投票节点上达到持久性并写入大多数投票节点的日志后,该写操作被认为是持久的。 - 选举
- 副本集成员在启动时以及在失败事件中选择一个主节点的过程。参见副本集选举。
- 加密模式
- 在可查询加密中,定义哪些字段是可查询的以及哪些查询类型允许在这些字段上进行的JSON模式。
- 字节序
- 在计算机中,字节序指的是字节排列的顺序。这种顺序可以指通信介质中的传输,或者更常见的是根据其重要性和位置在计算机内存中字节排列的顺序。有关详细信息,请参阅大端和小端。
- 信封加密
- 一种加密过程,其中使用数据加密密钥对数据进行加密,而数据加密密钥则由另一个称为客户主密钥的密钥加密。加密的密钥以BSON文档的形式存储在名为KeyVault的MongoDB集合中。
- 最终一致性
- 分布式系统的一个属性,允许系统中的更改逐渐传播。在数据库系统中,这意味着可读成员不需要具有最新的更新。
- 显式加密
- 当使用在用加密时,在工作与加密数据时明确指定加密或解密操作、密钥ID以及查询类型(对于可查询加密)或算法(对于客户端字段级加密)。与自动加密进行比较。
- 表达式
查询的一个组成部分,其解析为一个值。表达式是无状态的,这意味着它们返回一个值而不会修改构建表达式的任何值。
在MongoDB查询语言中,您可以从以下组件构建表达式
组件示例常量3
运算符字段路径表达式"$<path.to.field>"
例如,
{ $add: [ 3, "$inventory.total" ] }
是一个由$add
运算符和两个输入表达式组成的表达式常量
3
字段路径表达式 "$inventory.total"
该表达式返回在输入文档的路径
inventory.total
处加上3的结果。- 故障转移
- 允许一个次要成员在副本集出现故障时成为主要成员的过程。请参阅自动故障转移。
- 字段
- 文档中的一个名称-值对。文档可以有零个或多个字段。字段类似于关系数据库中的列。请参阅文档结构。
- 字段路径
- 指向文档中字段的路径。要指定字段路径,请使用以美元符号(
$
)为前缀的字段名字符串。 - 防火墙
- 一个系统级别的网络过滤器,根据IP地址和其他参数限制访问。防火墙是安全网络的一部分。请参阅防火墙。
- fsync
一个系统调用,将所有脏的内存页刷新到存储。随着应用程序写入数据,MongoDB在存储层中记录数据。
为了提供持久数据,WiredTiger 使用检查点。更多详情请参阅日志记录和WiredTiger存储引擎。
- geohash
- geohash值是坐标网格上位置的二进制表示。请参阅Geohash值。
- GeoJSON
- 基于JavaScript对象表示法(JSON)的地理空间数据交换格式。GeoJSON用于地理空间查询。有关支持的GeoJSON对象,请参阅地理空间数据。有关GeoJSON格式规范,请参阅https://tools.ietf.org/html/rfc7946#section-3.1。
- 地理空间
- 与地理位置相关。请参阅地理空间查询。
- GridFS
- 一种在MongoDB数据库中存储大文件的传统方法。所有官方MongoDB驱动程序都支持GridFS传统,包括
mongofiles
程序。请参阅GridFS自管理部署。 - 哈希分片键
- 一种使用分片键字段值的哈希来在分片集群的成员之间分配文档的分片键类型。请参阅哈希索引。
- 健康管理者
- 健康管理者在指定的强度级别上对一个健康管理者面进行健康检查。健康管理者检查在指定的时间间隔内运行。可以配置健康管理者自动将失败的mongos从集群中移除。
- 健康管理者面
- 一组健康管理者可以配置以运行健康检查的功能。例如,您可以配置健康管理者自动监控和管理DNS或LDAP集群健康问题。有关详细信息,请参阅健康管理者面。
- 隐藏成员
- 无法成为主节点的副本集成员,对客户端应用不可见。请参阅隐藏副本集成员。
- 高可用性
高可用性指的是设计用于耐用性、冗余和自动故障转移的系统。由该系统支持的应用程序可以在长时间内运行而无需停机。根据最佳实践部署时,MongoDB 副本集支持高可用性。
有关副本集部署架构的指导,请参阅副本集部署架构。
- 幂等性
- 当多次运行时,操作会产生与相同输入相同的结果。
- 使用中加密
- 在数据传输、存储和处理时保护数据的安全,并允许对加密数据执行支持的查询。MongoDB提供两种使用中加密的方法:可查询加密和客户端字段级加密。
- 索引
- 一种优化查询的数据结构。请参阅索引。
- 索引界限
- MongoDB使用索引执行查询时搜索的索引值范围。要了解更多信息,请参阅多键索引界限。
- 索引排序
- 当索引提供排序结果时进行的排序。使用索引的排序操作通常比阻塞排序具有更好的性能。有关更多信息,请参阅使用索引排序查询结果。
- 初始化脚本
- 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。 - 日志
- 一个用于在发生硬关闭时将数据库恢复到有效状态的顺序二进制事务日志。日志记录首先将数据写入日志,然后写入核心数据文件。MongoDB默认为MongoDB 2.0和更高版本的64位构建启用日志记录。日志文件是预分配的,并存在于数据目录中的文件。参见日志记录。
- JSON
- JavaScript对象表示法。一种用于表达结构化数据的纯文本格式,在许多编程语言中得到支持。更多信息请参见http://www.json.org。某些MongoDB工具将MongoDB BSON文档渲染为JSON格式。参见MongoDB扩展JSON(v2)。
- JSON文档
- JSON文档是一种结构化格式的字段和值的集合。有关示例JSON文档,请参阅http://json.org/example.html。
- JSONP
- 带有填充的JSON。指将JSON注入应用的方法。存在潜在的安全问题。
- 巨型块
- 一个超过指定块大小的块,无法分割成更小的块。有关更多详细信息,请参阅不可分割/巨型块。
- 密钥材料
- 加密算法用于加密和解密数据的随机比特字符串。
- 密钥保管库集合
- MongoDB集合,用于存储加密的数据加密密钥作为BSON文档。
- 最小权限
- 一种授权策略,仅授予用户完成其工作所必需的访问权限。
- 旧坐标对
- 在MongoDB 2.4版本之前用于地理空间数据之前使用的格式。此格式将地理空间数据存储为平面坐标系上的点(例如,
[ x, y ]
)。有关详细信息,请参阅地理空间查询。 - LineString
- LineString是一个包含两个或多个位置数组的对象。具有四个或更多位置且闭合的LineString称为LinearRing,如GeoJSON LineString规范中所述:https://tools.ietf.org/html/rfc7946#section-3.1.4。要在MongoDB中使用LineString,请参阅GeoJSON对象。
- 小端模式
字节序,其中多字节数据值的最不显著字节(小端)存储在最低内存地址。
点击放大- 锁定
- MongoDB 使用锁定来确保并发不会影响正确性。MongoDB 使用读锁、写锁和意向锁。更多信息,请参阅MongoDB 使用哪种类型的锁定?。
- 日志文件
- 包含服务器事件,例如传入连接、运行的命令和遇到的问题。有关详细信息,请参阅日志消息。
- LVM
- 逻辑卷管理器。LVM 是一个程序,它将磁盘镜像从物理设备抽象出来,并为系统管理提供多种原始磁盘操作和快照功能。有关 LVM 和 MongoDB 的信息,请参阅在 Linux 上使用 LVM 备份和还原。
- map-reduce
- 一个具有“映射”阶段(选择数据)和“减少”阶段(转换数据)的聚合过程。在 MongoDB 中,您可以使用 map-reduce 在数据上运行任意聚合。有关 map-reduce 实现的信息,请参阅Map-Reduce。有关所有聚合方法,请参阅聚合操作。
- 映射类型
- 编程语言中的一种结构,它将键与值相关联。键可能包含嵌套的键值对(例如,字典、散列、映射和关联数组)。这些结构的属性取决于语言规范和实现。通常,映射类型中键的顺序是任意的,没有保证。
- md5
- 一种哈希算法,用于计算所提供数据的校验和。该算法返回一个唯一值来标识数据。MongoDB 使用 md5 来标识GridFS 中的数据块。请参阅filemd5。
- 平均值
- 一组数字的平均值。
- 中位数
- 在数据集中,中位数是 50% 的数据值落在或低于该值的百分位数。
- 成员
- 单个mongod进程。一个副本集有多个成员。成员也称为节点。
- 元数据集合
- 在可查询加密中,MongoDB 使用的内部集合,用于在加密字段上启用查询。请参阅元数据集合。
- MIME
- 多用途互联网邮件扩展。一组用于声明在多个数据存储、传输和电子邮件环境中的数据编码和类型的类型和编码定义。工具
mongofiles
提供了一个选项,用于指定 MIME 类型来描述插入到GridFS 存储中的文件。 - 模式
- 一组数字中最频繁出现的数字。
- mongo
传统的MongoDB Shell。通过
mongo
进程以守护进程的形式启动传统Shell,并与mongod
或mongos
实例连接。Shell具有JavaScript接口。从MongoDB v5.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>
。所有文档都属于一个命名空间。请参阅命名空间。 - natural order
记录ID是在WiredTiger索引中创建和存储的。在单个实例上运行的默认排序顺序为自然顺序。
在副本集中,自然顺序可能不会保持一致,并且在成员之间可能不同。
在分片集合中,自然顺序未定义。但是,使用
$natural
仍会强制每个分片执行集合扫描。- 网络分区
一种网络故障,将分布式系统分割成多个分区,使得一个分区中的节点无法与另一个分区中的节点通信。
有时,分区可能是部分或不均匀的。一个部分分区的例子是将网络节点分成三个集合,其中第一个集合的成员无法与第二个集合的成员通信,反之亦然,但所有节点都可以与第三个集合的成员通信。
在不均匀的分区中,通信可能只有在某些节点发起时才可能。例如,分区一侧的节点只有在其发起通信通道时才能与另一侧通信。
- 节点
- 单个 mongod 进程。一个 副本集 有多个节点。节点也称为 成员。
- noop
- 无操作(noop),是一种 I/O 操作调度器,根据先进先出的队列分配 I/O 带宽给入队进程。
- NVMe
- NVMe(非易失性内存表达)是一种用于访问高速存储媒体的协议。
- 对象标识符
- 请参阅 ObjectId.
- ObjectId
- 一个 12 字节的 BSON 类型,在 集合 中是唯一的。ObjectId 使用时间戳、计算机 ID、进程 ID 和本地进程增量计数器生成。MongoDB 使用 ObjectId 值作为 _id 字段的默认值。
- 操作日志
- 请参阅 oplog.
- 操作元数据
- 关于进程执行的信息,而不是它们的内容,例如插入、更新和删除操作的数量和时间。
- 操作拒绝过滤器
- 一个被拒绝的 查询形状。有关详细信息,请参阅 使用操作拒绝过滤器阻止慢查询。
- 操作时间
- 请参阅 optime.
- 运算符
- 以
$
开头的关键字,用于表达更新、复杂查询或数据转换。例如,$gt
是查询语言的“大于”运算符。有关可用运算符,请参阅 运算符。 - oplog
- 一个存储 MongoDB 数据库逻辑写入有序历史的 capped collection。oplog 是 MongoDB 中复制的基 本机制。请参阅 副本集 Oplog。
- oplog 空隙
- 由于 oplog 写入未按顺序进行,因此在 oplog 中出现临时空隙。副本集 主节点 将 oplog 条目并行作为批量操作应用。因此,oplog 中可以出现来自尚未从批量中写入的条目的临时空隙。
- oplog 窗口
- 操作日志条目都有时间戳。操作日志窗口是操作日志中最新和最旧时间戳之间的时间差。如果一个从节点与主节点断开连接,只有当连接在操作日志窗口内恢复时,它才能通过复制来再次同步。
- optime
对复制操作日志中某个位置的引用。optime值是一个包含以下内容的文档:
- 有序查询计划
- 一种查询计划,返回的结果与
sort()
排序顺序一致。参见查询计划。 - 孤立游标
- 在您的应用程序代码中没有正确关闭或迭代的游标。孤立游标可能会导致您的MongoDB部署中性能问题。
- 孤立文档
在分片集群中,孤立文档是在某个分片上存在,同时在其他分片上也存在分块上的文档。这是由于失败迁移或不完整迁移清理(由于非典型关闭)造成的。
孤立文档在块迁移完成后会自动清理。您不再需要运行
cleanupOrphaned
来删除孤立文档。- 被动成员
- 一个无法成为主节点的副本集成员,因为其
members[n].priority
为0
。参见优先级为0的副本集成员。 - 每CPU缓存
- 一种本地存储特定CPU核心内存的缓存类型。每CPU缓存用于MongoDB 8.0中引入的新版本TCMalloc。
- 每线程缓存
- 一种本地存储每个应用程序线程内存的缓存类型。每线程缓存用于MongoDB 7.0及更早版本中使用的TCMalloc的旧版本。
- 百分位数
- 在数据集中,百分位数是指数据中该百分比的数据值或低于指定值。有关详细信息,请参阅计算考虑事项。
- PID
- 进程标识符。UNIX-like系统为每个运行进程分配一个唯一的整数PID。您可以使用PID来检查正在运行的进程并向其发送信号。参见
/proc
文件系统。 - 管道
- UNIX-like系统中的一个通信通道,允许独立进程发送和接收数据。在UNIX shell中,管道操作允许用户将一个命令的输出重定向到另一个命令的输入。
- 管道
- 在聚合中的一系列操作。参见聚合管道。
- 计划缓存查询形状
查询谓词、排序、投影和排序规则的组合。计划缓存查询形状允许MongoDB识别等效查询并分析其性能。
对于查询谓词,仅使用谓词结构和字段名。查询谓词中的值不使用。例如,查询谓词
{ type: 'food' }
与{ type: 'drink' }
等效。为了识别具有相同计划缓存查询形状的慢查询,每个计划缓存查询形状都有一个十六进制
planCacheShapeHash
值。有关更多信息,请参阅planCacheShapeHash和planCacheKey。从MongoDB 8.0版本开始,现有的
queryHash
字段重命名为planCacheShapeHash
。如果您使用的是更早的MongoDB版本,您将看到queryHash
而不是planCacheShapeHash
。- 点
- GeoJSON点规范中描述的单个坐标对:https://tools.ietf.org/html/rfc7946#section-3.1.2。要在MongoDB中使用点,请参阅GeoJSON对象。
- 多边形
GeoJSON多边形规范中描述的线性环坐标数组的数组,如以下链接所述:https://tools.ietf.org/html/rfc7946#section-3.1.6。对于具有多个环的多边形,第一个必须是外环,任何其他环必须是内部环或洞。
MongoDB 不允许外部环自我交叉。内部环必须完全包含在外环内,并且不能相互交叉或重叠。请参阅GeoJSON 对象。
- post-image 文档
- 在插入、替换或更新后的文档。请参阅带有文档预和后图像的更改流。
- powerOf2Sizes
- 为每个集合设置的一种配置,为每个文档分配空间,以最大化存储重用并减少碎片。默认的
powerOf2Sizes
用于TTL 集合。要更改集合设置,请参阅collMod
。 - pre-image 文档
- 在替换、更新或删除之前的文档。请参阅带有文档预和后图像的更改流。
- pre-splitting
- 在插入数据之前执行的操作,将可能的分片键值范围划分为块,以简化插入并提高写入吞吐量。在某些情况下,通过手动划分集合而不是等待 MongoDB 均衡器 来执行,可以加快分片集群中文档的初始分布。请参阅在分片集群中创建范围。
- prefix compression
- 通过仅在每页内存中存储一次任何相同的索引键前缀来减少内存和磁盘消耗。有关 WiredTiger 压缩行为的更多信息,请参阅压缩。
- primary
- 在副本集中,主节点是接收所有写操作的成员。请参阅主节点。
- primary key
- 记录的唯一不可变标识符。在RDBMS软件中,主键通常是存储在每行
id
字段中的整数。在 MongoDB 中,_id字段存储文档的主键,通常是 BSON ObjectId。 - primary shard
- 分片集群中的每个数据库都有一个主分片。它是数据库中所有非分片集合的默认分片。请参阅主分片。
- priority
- 这是一个可配置的值,有助于确定副本集中哪些成员最有可能成为主节点。请参阅
members[n].priority
。 - privilege
- 在资源上允许的指定资源和操作的组合。请参阅权限。
- projection
- 向查询查询提供的文档,该查询指定MongoDB在结果集中返回的字段。有关投影的更多信息,请参阅从查询结果返回字段和投影运算符。
- 查询
- 一个读取请求。MongoDB使用一种包含以
$
字符开头的名称的JSON形式的查询语言,其中包括查询运算符。在mongosh
中,您可以使用db.collection.find()
和db.collection.findOne()
方法运行查询。请参阅查询文档。 - 查询框架
- 查询优化器和查询执行引擎的组合,用于处理操作。
- 查询运算符
- 查询中的一个以
$
开头的关键字。例如,$gt
是“大于”运算符。有关查询运算符的列表,请参阅查询运算符。 - 查询优化器
- 生成查询计划的进程。对于每个查询,优化器生成一个计划,该计划将查询与索引匹配,以便以尽可能有效的方式返回结果。优化器在每次查询运行时重用查询计划。如果集合发生重大变化,优化器将创建一个新的查询计划。请参阅查询计划。
- 查询计划
- 查询规划器选择的最高效的执行计划。有关详细信息,请参阅查询计划。
- 查询谓词
一个表达式,返回一个布尔值,指示文档是否匹配指定的查询。例如,
{ name: { $eq: "Alice" } }
,它返回具有值为字符串"Alice"
的字段"name"
的文档。查询谓词可以包含子表达式和运算符以进行更复杂的匹配。要查看可用的查询运算符,请参阅查询和投影运算符。
- 查询形状
- 查询形状是一组将类似查询分组的规范。有关详细信息,请参阅查询形状。
- 范围
- 数据块内连续的 分片键 值范围。数据范围包含下界,不包括上界。当分片包含相对于其他分片过多的集合数据时,MongoDB 会迁移数据。请参阅分片迁移阈值、使用数据块进行数据分区和分片集群均衡器。
- RDBMS
- 关系数据库管理系统。基于关系模型,通常使用 SQL 作为查询语言的数据库管理系统。
- 读取关注点
- 指定读取操作的程度。例如,您可以使用读取关注点只读取已传播到副本集中大多数节点上的数据。请参阅读取关注点。
- 读取锁
- 对资源(如集合或数据库)的共享 锁,在保持期间,允许并发读取但无写入。请参阅MongoDB 使用什么类型的锁定?。
- 读取偏好
- 确定客户端如何指导读取操作的设置。读取偏好影响所有副本集,包括分片副本集。默认情况下,MongoDB 将读取操作定向到主节点。但是,您也可以将读取操作定向到次级节点以进行最终一致性读取。请参阅读取偏好。
- 恢复中
- 表示 副本集 成员状态,表明成员尚未准备好开始次级或主节点活动。恢复中的成员不可用于读取。
- 副本集
- 一组实施复制和自动故障转移的 MongoDB 服务器。MongoDB 推荐的复制策略。请参阅复制。
- 复制
- 一种功能,允许多个数据库服务器共享相同的数据。复制确保数据冗余并实现负载均衡。请参阅复制。
- 复制延迟
- 从主节点的 oplog 中最后一个操作到最后一个应用到特定 次级 的操作之间的时间间隔。通常希望复制延迟尽可能短。请参阅复制延迟。
- 驻留内存
- 应用程序内存当前存储在物理 RAM 中的子集。驻留内存是 虚拟内存 的子集,包括映射到物理 RAM 和存储的内存。
- 资源
- 数据库、集合、集合集合或集群。一个权限允许对指定资源执行操作。有关详细信息,请参阅资源。
- 角色
- 一组权限,允许对指定的资源执行操作。分配给用户的角色决定了用户对资源和操作的访问权限。请参阅安全性。
- 回滚
- 一个将写操作回滚的过程,以确保所有副本集成员的一致性。请参阅副本集故障转移期间的回滚。
- 辅助节点
- 一个副本集成员,它复制主数据库的内容。辅助成员可以运行读请求,但只有主要成员可以运行写操作。请参阅辅助节点。
- 辅助索引
- 数据库索引通过最小化查询引擎运行查询所需执行的工作量来提高查询性能。请参阅索引。
- 辅助成员
- 请参阅辅助节点。也称为辅助节点。
- 种子列表
- 种子列表由驱动程序和客户端(如
mongosh
)用于初始发现副本集配置。种子列表可以提供为host:port
对列表(请参阅标准连接字符串格式或通过DNS条目。)有关更多信息,请参阅SRV连接格式。 - 自管理
- 由个人或组织设置和维护的MongoDB实例,而不是外部管理或第三方服务(如MongoDB Atlas)。
- 集合名称
- 分配给副本集的任意名称。副本集的所有成员都必须使用
replSetName
设置或--replSet
选项指定的相同名称。 - 分片
- 单个
mongod
实例或副本集,它存储了分片集群总数据集的一部分。通常,在生产部署中,确保所有分片都是副本集的一部分。请参阅分片。 - 分片键
- MongoDB用于在分片集群成员之间分配文档的字段。请参阅分片键。
- 分片集群
- 由节点组成的 MongoDB 部署的集合,这些节点是分片的。一个分片集群由配置服务器、分片和一个或多个 mongos 路由进程组成。请参阅 分片集群组件。
- 分片
- 一种数据库架构,通过键范围对数据进行分区,并将数据分布到两个或多个数据库实例中。分片允许水平扩展。请参阅 分片。
- shell 辅助工具
- 在
mongosh
中的一种方法,它具有简洁的数据库命令语法。Shell 辅助工具提升了交互式体验。请参阅mongosh
方法。 - 单主复制
- 一种 复制 拓扑,其中只有一个数据库实例接受写入。单主复制确保一致性,是 MongoDB 使用的复制拓扑。请参阅 副本集主节点。
- snappy
- 一个用于平衡高效计算需求与合理压缩率的压缩/解压缩库。Snappy 是 MongoDB 在使用 WiredTiger 时的默认压缩库。请参阅 Snappy 和 WiredTiger 压缩文档 获取更多信息。
- 快照
- 快照是在特定时间点的 快照,它是一个
mongod
实例中的数据副本。您可以检索整个集群或副本集的快照元数据,或者集群中单个配置服务器的快照元数据。 - 排序键
- 排序字段时进行比较的值。要了解MongoDB如何确定非数值字段的排序键,请参阅比较/排序顺序。
- 分割
- 在分片之间,位于分片集群中。请参阅使用分片的数据分区。
- SQL
- 结构化查询语言(SQL)用于与关系数据库交互。
- SSD
- 固态硬盘。一种高性能存储,使用固态电子而不是机械硬盘使用的旋转磁盘和可移动的读写头来实现持久化。
- 过时读取
- 过时读取指的是事务读取由其他事务修改但尚未提交到数据库的旧(过时)数据。
- 独立
- 一个作为单个服务器运行而不是作为副本集一部分的
mongod
实例。要将它转换为副本集,请参阅将自管理独立mongod转换为副本集。 - 暂存集合
- 在重新分片过程中可能创建的临时集合。当重新分片成功完成时,在操作过程中删除创建的任何暂存集合。
- 下台
如果副本集失去了与主节点的联系,次要节点将选择一个新的主节点。当旧主节点得知选举结果时,它会下台并作为次要节点重新加入副本集。
如果用户运行
replSetStepDown
命令,主节点将下台,迫使副本集选举新的主节点。
- 存储引擎
- 数据库中负责管理数据存储和访问的部分,包括内存和磁盘。不同的存储引擎对特定的负载表现更好。请参阅自管理部署的存储引擎以获取MongoDB内置存储引擎的详细信息。
- 存储顺序
- 请参阅自然顺序。
- 严格一致性
- 分布式系统的属性,要求所有成员都包含系统的最新更改。在数据库系统中,这意味着任何可以提供数据的系统都必须包含最新的写入。
- 主题备用名称
- 主题备用名称(SAN)是X.509证书的扩展,允许一系列值,如IP地址和域名,指定单个安全证书可以保护的资源。
- 同步
- 副本集操作,其中成员从主节点复制数据。同步首先在MongoDB创建或恢复成员时发生,这被称为初始同步。然后,同步持续进行以保持成员更新副本集数据的变化。请参阅副本集数据同步。
- syslog
- 在类UNIX系统中,一个为服务器和进程提供统一日志标准的日志进程。MongoDB提供了一个将输出发送到主机syslog系统的选项。参见
syslogFacility
。 - 标签
应用于副本集成员的标签,客户端使用此标签执行数据中心感知操作。有关使用标签与副本集的信息,请参阅读取偏好标签集列表。
- 标签集
- 包含零个或多个标签的文档。
- 可滚动的游标
- 对于固定集合,可滚动游标是在客户端用尽初始游标中的结果后仍然保持打开的游标。当客户端向固定集合中插入新文档时,可滚动游标继续检索文档。
- 术语
- 对于副本集的成员,是一个与选举尝试对应的单调递增数字。
- 时间序列集合
- 一个高效存储一段时间内测量序列的集合。请参阅时间序列。
- 拓扑
MongoDB实例部署的状态。包括
- 事务
- 一组读取或写入操作。有关详细信息,请参阅事务。
- 事务协调器
- MongoDB的一个组件,它管理副本集或分片集群中的事务。它协调跨节点执行和完成多文档事务,允许将复杂操作视为一个原子操作。
- TSV
- 由制表符分隔的值的文本数据格式。此格式通常用于在关系数据库之间交换数据,因为该格式适合于表格数据。您可以使用
mongoimport
导入TSV文件。 - TTL
- 生存时间(TTL)是给定信息在缓存或其他临时存储中保留的过期时间或时间段,在此之后系统将其删除或使其过期。MongoDB具有TTL集合功能。请参阅通过设置TTL从集合中删除数据。
- 无界数组
- 随着时间的推移持续增长更大的数组。如果文档字段值是无界数组,数组可能会对性能产生负面影响。通常,您应该设计模式以避免无界数组。
- 唯一索引
- 确保单集合中特定字段唯一性的索引。参见 唯一索引。
- Unix纪元
- 1970年1月1日00:00:00 UTC。通常用于表示时间,其中计算自该点以来的秒数或毫秒数。
- 无序查询计划
- 一个查询计划,其返回的结果顺序与
sort()
排序顺序不一致。参见 查询计划。 - upsert
更新操作的一个选项。例如:
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
实例。对于 副本集,您可以将写关注配置为确认复制到指定数量的成员。请参阅 写关注。 - 写冲突
- 两个并发操作(至少其中一个是写操作)尝试使用违反使用乐观并发控制的存储引擎约束的资源的情况。MongoDB自动结束并重试其中一个冲突的写操作。
- 写锁
- 对资源(如集合或数据库)的独占锁定。当进程写入资源时,它会获取独占写锁,以防止其他进程对该资源进行写入或读取。有关锁的更多信息,请参阅并发FAQ。
- zlib
- 一种数据压缩库,与MongoDB使用的snappy相比,在更高的CPU成本下提供更高的压缩率。您可以将WiredTiger配置为使用zlib作为其压缩库。有关更多信息,请参阅http://www.zlib.net和WiredTiger压缩文档。
- 区域
- 基于给定分片集合的分片键值范围的文档分组。分片集群中的每个分片可以在一个或多个区域内。在平衡集群中,MongoDB仅将区域内的读取和写入操作指导到该区域内的分片。有关更多信息,请参阅区域分片手册页面。
- zstd
- 一种数据压缩库,与zlib相比,提供更高的压缩率和更低的CPU使用率。