MongoDB
文章平均质量分 75
MongoDB基础
吴声子夜歌
个人学习记录
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MongoDB 8.0——性能优化
MongoDB作为一款NoSQL类型的数据库,随着存储数据MongoDB作为一款NoSQL类型的数据库,随着存储数据查询响应时间。查询响应时间是衡量数据库处理查询请求效率的主要指标。高延迟响应时间通常意味着需要优化索引或查询结构。吞吐量。吞吐量是指单位时间内数据库能够处理的请求数量,包括读写操作。高吞吐量则表明系统的并发处理能力很强。内存使用率。内存使用率表示MongoDB使用的物理内存与可用内存的比例。合理的内存配置有助于提高缓存命中率,从而减少磁盘I/O操作。磁盘I/O。原创 2026-08-03 22:00:03 · 193 阅读 · 0 评论 -
MongoDB 8.0——安全性
MongoDB数据库的安全性主要通过多种机制和技术来保障,包括身份验证、访问控制、加密、传输加密以及审计日志等。这些措施共同作用,确保数据的安全性和完整性。身份验证:MongoDB支持多种身份验证机制,如SCRAM和X.509证书身份验证,用于用户凭据的验证。访问控制:基于角色的访问控制(Role-Based AccessControl,RBAC),为不同用户和应用程序分配不同的访问权限。加密:支持数据传输加密和存储加密,使用SSL/TLS协议对数据传输进行加密,并使用加密算法对数据存储进行加密。原创 2026-08-03 21:30:45 · 222 阅读 · 0 评论 -
MongoDB 8.0——存储
MongoDB数据库存储引擎是MongoDB负责管理数据的主要组件。MongoDB提供多种存储引擎,可以选择最适合自己应用程序的引擎。提供文档级锁定。内存和磁盘的性能都很好。支持文档级的并发。高压缩率。加密支持。本文介绍的日志是WiredTiger预写日志,而不是MongoDB数据库日志文件。预写日志是帮助数据库在发生硬中止时恢复数据的记录。它提供了多个可配置选项,允许在特定场景下平衡性能和可靠性。原创 2026-08-03 20:35:35 · 235 阅读 · 0 评论 -
MongoDB 8.0——分片
MongoDB数据库分片就是将数据分成块,再将块存储到不同的服务器上,其实是一种分布式存储数据的方法。如果数据库系统存在大型数据集或高吞吐量应用程序的情形,可能会对单个服务器的容量构成挑战。例如,较高的查询速率可能会耗尽服务器的CPU容量。大于系统RAM的工作集大小会对磁盘驱动器的I/O容量造成压力。因此,有两种方法可以解决系统扩展的问题,分别是垂直扩展(Vertical Scaling)和水平扩展(HorizontalScaling)。原创 2026-08-03 17:34:24 · 272 阅读 · 0 评论 -
MongoDB 8.0——副本集
MongoDB数据库中的副本集可提供冗余并提高数据可用性,是一组维护相同数据集的mongod实例。通过在不同的数据库服务器上设置数据副本,副本集为单个数据库服务器丢失的情况提供了一定程度的容错能力。副本集包含多个数据承载节点和一个可选的仲裁节点。在数据承载节点中,只有一个主节点,其余的称为从节点。需要注意的是,每个副本集节点必须属于且只属于一个副本集。副本集节点不能属于多个副本集。主节点会接收所有写入操作。原创 2026-08-03 16:15:19 · 206 阅读 · 0 评论 -
MongoDB 8.0——索引
MongoDB数据库索引支持高效执行查询。如果没有索引,MongoDB就必须扫描集合中的每个文档以返回查询结果。如果数据库存在适当的索引,MongoDB就可以使用该索引来限制查询必须扫描的文档数。MongoDB索引可提高查询性能,但添加索引会影响写入操作的性能。对于写入读取率高的集合,由于每次插入操作都必须同时更新所有索引,因此会带来较高的索引成本。如果应用程序对相同字段重复运行查询,则可以为这些字段创建索引以提高性能。MongoDB索引是一种特殊的数据结构,以易于遍历的形式存储小部分集合数据集。原创 2026-08-03 11:45:42 · 246 阅读 · 0 评论 -
MongoDB 8.0——事务
例如,在电子商城场景中,当顾客下单购买某件商品时,除生成订单外,还应该同时扣减商品的库存,这些操作应该被作为一个整体的执行单元进行处理,否则会产生数据不一致的情况。事务中的任何操作失败,事务都会中止,事务中所进行的所有数据更改将被丢弃,并且不会变得可见。MongoDB数据库在事务中创建集合和索引,如果事务不是跨分片写入事务,则可以在分布式事务中执行创建集合的操作,并在先前同一事务中创建的新空集合上创建索引。在下面的代码示例中,包含在出现暂时性错误时重试事务的逻辑,以及在出现未知提交错误时重试提交的逻辑。原创 2026-08-02 23:34:51 · 233 阅读 · 0 评论 -
MongoDB 8.0——时间序列
MongoDB数据库的时间序列集合是一种特殊类型的集合,设计用于存储时间序列数据。这种数据类型由一系列数据点组成,每个数据点都包含一个时间戳和相关的测量值,通过分析这些随时间变化的数据点,可以获得对数据的深刻理解。时间序列数据通常由以下几个部分组成。时间:数据点被记录的时间。元数据:一个标签或标记,唯一标识一个序列,并且很少更改。测量值:按时间增量跟踪的数据点,通常是随时间变化的键–值对。在MongoDB数据库中使用时间序列集合,首先需要创建集合。原创 2026-08-02 21:19:32 · 430 阅读 · 0 评论 -
MongoDB 8.0——数据模型
数据建模是指对数据模型中的数据以及相关实体间的链接进行组织的过程,MongoDB中的数据具有灵活的模式,灵活的数据模型可以帮助设计人员组织数据,以满足应用程序的需求。MongoDB是一个文档数据库,具有的灵活的模式模型,支持设计人员在对象和数组字段中嵌入相关数据。因此,MongoDB集合单个文档中的字段的数据类型,可能因集合中的文档而异,通常集合中的文档具有相似的结构。当公司需要追踪一名员工在哪个部门工作,MongoDB可以将部门信息嵌入员工集合中,以便在单个查询中返回相关信息。原创 2026-08-02 19:28:24 · 231 阅读 · 0 评论 -
MongoDB 8.0——聚合
有些管道,例如水管管道,在一些重要的节点会进行处理,例如过滤、净化、杀菌、消毒等,最后流入住户的都是合格的饮用水。聚合管道(Aggregation Pipeline)是MongoDB 2.2版本引入的一个新功能,它基于数据处理管道模型的数据聚合框架,其概念和工作方式类似于Linux中的管道操作符,主要用于批量数据处理和统计分析,类似于SQL的group by语句。整个过程就像一个流水线式的操作,数据从管道的一端流入,经过几个阶段的处理后,输出一个最终的结果。最终输出的是符合需求的文档数据。原创 2026-08-01 23:51:42 · 280 阅读 · 0 评论 -
MongoDB 8.0——数据库操作
MongoDB提供了多种语言支持,例如C#、Go、Java、Motor、Node.js、Perl、PHP、Python、Ruby、Scala等,功能最强大、使用频率最高的方法还是基于mongosh操作数据库。从图中可以看出,成功删除数据库后,会返回删除结果,ok的值为1,dropped的值为当前删除的数据库的名称。这些方法涵盖文档的查询、插入、更新和删除,集合统计,索引操作等方面。在图中可以看到,在数据量小时,两个方法的差异不太大,但已有明显差异,随着数据量的增长,该差距会越来越大。原创 2026-08-01 21:34:02 · 321 阅读 · 0 评论 -
MongoDB 8.0——MongoDB Shell(mongosh)
默认情况下mongosh提示语(在命令左侧显示)为当前数据库的名称。可以通过修改prompt变量来修改该配置,这种修改方式不会持久保存,一旦退出mongosh,该自定义修改也会消失。想要永久修改该配置,可以通过修改.mongoshrc.js文件来实现。原创 2026-08-01 15:35:37 · 250 阅读 · 0 评论 -
MongoDB 8.0——可视化管理工具
单击该图标,弹出DropDatabase对话框,在该对话框中填入数据库名称进行确认,然后单击Drop DataBase按钮删除数据库,完成删除 后再查看数据库列表,可以看到数据库已经不存在,如图所示。首先下载Compass。在删除文档时,选中需要删除的文档记录并右击,在弹出的快捷菜单中选择“删除文档”选项,弹出确认“删除”对话框,单击“删除一个文档”按钮,确认删除,如图所示。如果已有注册码,直接单击“注册”按钮,如果没有注册码,则单击“立即购买”按钮跳转到购买页,购买完成后,重新填入注册码,如图所示。原创 2026-07-31 23:44:52 · 318 阅读 · 0 评论 -
MongoDB 8.0——MongoDB的安装
在CentOS系统上安装MongoDB有多种方式,可以直接使用在线yum方式安装,无须提前下载安装包,也可以直接到https://repo.mongodb.org/yum/redhat/页面下载rpm文件安装,或者在官网https://www.mongodb.com/try/download/community页面下载tgz文件进行安装。MongoDB启动后,会生成相关的日志文件,此文件可用来跟踪错误或重要消息的进程状态,日志文件目录为/var/log/mongodb/mongod.log。原创 2026-07-31 18:47:45 · 406 阅读 · 0 评论 -
MongoDB 8.0——MongoDB简介
1、MongoDB概述2、MongoDB的发展历史3、MongoDB的优缺点1.3、MongoDB的优点3.2、MongoDB的缺点4、常用概念5、数据类型MongoDB是目前非常流行的文档数据库之一,它既能够作为完全托管的云服务来使用,也可以部署到私有服务器上自行维护。它的出现使数据的存储、获取和分析领域带来了里程碑式的变革。对于当今的互联网从业者来说,了解并能够灵活使用MongoDB非常重要。随着大数据时代的到来,数据呈爆炸式增长,这使得传统的关系数据库面临越来越大的挑战。原创 2026-07-31 17:26:30 · 240 阅读 · 0 评论 -
MongoDB 4.2——安装 MongoDB
默认情况下,MongoDB 会尝试使用当前驱动器上的 \data\db 目录作为它的数据目录(如果在Windows 系统的 C: 下运行 mongod,那么它会使用C:\Program Files\MongoDB\Server&\data 目录)。如果需要,可以使用 mkdir -p 创建指定目录及其所有父目录(如果 /data 目录不存在,则会先创建 /data 目录,然后再创建 /data/db 目录)。如果使用的是非官方版本,则需要确保安装的是相对比较新的版本。选择 MongoDB 的一个版本。原创 2026-07-31 16:03:16 · 262 阅读 · 0 评论 -
MongoDB 4.2——部署 MongoDB
它必须为还没有“归属”的数据使用本地内存,但它的本地内存已经满了。设置较高的预读值有利于顺序 I/O 操作,但由于MongoDB 的磁盘访问模式通常是随机的,因此较高的预读值带来的好处有限,甚至可能导致性能下降。这一优化基于的原理是,计算机处理的大多数工作负载是连续的:如果加载了一个视频的前 20MB 内容,则接下来很可能需要随后的几 MB。很难想象这两个数字之间的差别,因此,如果把它们放大到更直观的数字,你就会明白:如果访问 RAM 需要 1 秒的时间,那么访问磁盘所花费的时间就要超过 1天!原创 2026-07-31 16:03:01 · 331 阅读 · 0 评论 -
MongoDB 4.2——备份
使用本章介绍的方法备份分片群集时,主要需要考虑的是那些只能在它们处于活动状态时对其进行备份的场景,而又不可能对活动状态下的分片群集进行“完美”备份:因为无法在某个时间点获得集群整个状态的快照。如果需要将整个集群备份到某个特定的时间点,或者希望使用自动化解决方案,则可以使用 MongoDB 的 Cloud Manager 或 Atlas 中的备份功能。首先,如果使用了 mongodump,则必须使用 --oplog选项进行备份,以获得某个时间点的快照,否则备份的状态会与集群中任何其他成员的状态都不匹配。原创 2026-07-28 20:48:10 · 73 阅读 · 0 评论 -
MongoDB 4.2——监控 MongoDB
计算机中一般会有容量小且访问速度快的内存以及容量大但访问速度慢的磁盘。当请求存储在磁盘上(还不在内存中)的数据页时,系统会发生缺页错误,并将该页从磁盘复制到内存中。然后就可以快速访问内存中的数据页了。如果程序没有定期使用该页的内容,并且内存又被其他页占满,那么旧页就会从内存中被清除,只存在于磁盘上。将一个页面从磁盘复制到内存比从内存中读取这个页面花费的时间要长得多。因此,MongoDB 从磁盘复制数据的次数越少越好。如果 MongoDB 可以完全在内存中运行,它就能够更快地访问数据。原创 2026-07-28 17:09:56 · 134 阅读 · 0 评论 -
MongoDB 4.2——在生产环境中设置 MongoDB
将每个数据库放在自己单独的目录中。也可以将负载较高的数据库放在速度更快的磁盘上,将负载较低的数据库放在速度更慢的磁盘上。如果在一台机器上有多个 MongoDB实例(比如,一个 mongod 和一个 mongos),那么需要确保它们的日志存储在不同的文件中。MongoDB 会因为以下问题发出警告:正在一台 32 位的机器上运行(MongoDB 不是为 32 位机器设计的),启用了 NUMA(可能会严重拖慢应用程序的运行速度)或系统未允许足够的打开文件描述符(MongoDB 需要使用大量的文件描述符)。原创 2026-07-28 16:38:28 · 94 阅读 · 0 评论 -
MongoDB 4.2——持久性
WAL 是数据库系统中一种常用的持久性技术,其基本原理是,在将对数据库所做的更改应用到数据库本身之前,将对这些更改的一种表示写到持久介质(如磁盘)上。如果 j 的值为 true,则 MongoDB 只有在请求的成员数(w的值)都已经将操作写入它们磁盘上的日志中时,才会确认写操作成功。oplog 中的语句是对写操作影响的每个文档所做的实际更改的表示。在不等待日志记录的情况下,如果服务器进程或硬件停止运行,那么在每个成员上会有一个大约 100 毫秒的短暂的时间窗口可能发生写操作丢失。原创 2026-07-28 16:15:57 · 141 阅读 · 0 评论 -
MongoDB 4.2——安全介绍
1、MongoDB的身份验证和授权1.1、身份验证机制1.2、授权1.3、使用x.509证书对成员和客户端进行身份验证2、MongoDB的认证和传输层加密教程2.1、建立CA2.1.1、生成根CA2.2、生成并签名成员证书2.3、生成并签名客户端证书2.4、在不启用身份验证和授权的情况下启动副本集2.5、创建admin用户2.6、启用身份验证和授权并重新启动副本集。原创 2026-07-28 15:55:24 · 379 阅读 · 0 评论 -
MongoDB 4.2——了解应用程序的动态
这有助于将分析器中的可用信息关联起来,进行查询性能方面的诊断。如果对集合中的每个元素调用 Object. bsonsize() 并将所有结果相加,就会得到 “size” 的值:它是集合中的文档在未压缩时占用内存的实际字节数。因此,如果将 slowms 设置为 2,那么每个耗时超过两毫秒的操作都将显示在日志中,即使分析器是关闭的。分析器是在数据库粒度上开启的,并会造成严重的性能损失:每次写操作都要花费额外的写入时间,每次读操作都必须等待写锁(因为它必须在 system.profile集合中写入一条记录)。原创 2026-07-28 15:20:43 · 168 阅读 · 0 评论 -
MongoDB 4.2——分片管理
提供了分片、数据库以及分片集合的概要信息。如果数据块的数量不多,那么它还会打印出块的位置。"_id" : 1,shards:autosplit:balancer:databases:chunks:shard01 1chunks:shard01 3shard02 4shard03 3如果块的数量比较多,则 sh.status() 会汇总块的统计信息,而不是打印每个块。要查看所有块,可以运行sh.status(true)(true 参数会要求 sh.status() 打印出详细信息)。原创 2026-07-28 14:50:29 · 348 阅读 · 0 评论 -
MongoDB 4.2——选择片键
重要的是,键的组合要具有很高的基数。因此,如果每个分片有一个块,那么这会是非常完美的配置:写操作在每个分片内都是升序的,如下图所示。然而,在 fs.chunks 上自动创建的索引都不是特别适合作为片键:{“_id” : 1} 是一个升序键,而{“files_id” : 1, “n” : 1} 使用了 fs.files 的 “_id” 字段,因此也是一个升序键。在 MongoDB 4.2 中,自动拆分的功能被移动到了分片主节点的 mongod 中,这增加了对顶部数据块的优化,从而得以解决升序片键模式的问题。原创 2026-07-28 13:45:20 · 250 阅读 · 0 评论 -
MongoDB 4.2——配置分片
创建集群的第一步是启动所需的所有进程。随着块的增长,MongoDB 会自动将其拆分成两个块,范围分别是从负无穷到 <some value> 和 <some value>到无穷大,其中 <some value> 在两个块中是相同的:范围较小的块包含比 <some value> 小的所有值(但不包含<some value>),范围较大的块包含 <some value> 及比它大的所有值。在添加这个分片时,mongos 会将副本集中的所有数据库注册为分片所“拥有”的数据库,因此它会将所有的查询发送到新分片上。原创 2026-07-28 12:16:12 · 363 阅读 · 0 评论 -
MongoDB 4.2——分片简介
1、什么是分片2、理解集群组件3、在单机集群上进行分片分片是指跨机器拆分数据的过程,有时也会用术语分区(partitioning)来表示这个概念。通过在每台机器上放置数据的子集,无须功能强大的机器,只使用大量功能稍弱的机器,就可以存储更多的数据并处理更多的负载。分片还可以用于其他目的,包括将经常访问的数据放置在更高性能的硬件上,或基于地理位置(比如,基于在一个特定语言环境下的用户)来拆分集合中的文档以使它们接近最常对其进行访问的应用程序服务器。大部分数据库软件支持进行手动分片。原创 2026-07-28 00:16:00 · 226 阅读 · 0 评论 -
MongoDB 4.2——管理
如果向主节点发送创建索引的命令,那么主节点会正常创建索引,然后从节点会在复制“创建索引”这条操作时进行索引的创建。如果预算有限,不能购买多台高性能服务器,则可以考虑将从节点服务器只用于灾难恢复,这样的服务器不需要太大的 RAM 和太好的 CPU,也不需要太高的磁盘 I/O。如果主节点的 oplog 长度是一小时,那么就只有一小时的时间来修复所有的问题,否则可能会导致从节点落后过多,不得不从头开始重新同步。这意味着需要重新启动成员,使其成为单机运行的服务器,而不再是一个副本集的成员(只是临时的)。原创 2026-07-27 22:22:56 · 112 阅读 · 0 评论 -
MongoDB 4.2——从应用程序连接副本集
写入副本集的大多数成员被认为是“安全”的。然而,有些副本集可能有更复杂的要求:你可能希望确保写操作被复制到每个数据中心的至少一台服务器或大多数的非隐藏节点上。副本集允许你创建可以传递给 “getLastError” 的自定义规则,以确保写操作被复制到所需的任何服务器组合上。原创 2026-07-27 21:34:36 · 138 阅读 · 0 评论 -
MongoDB 4.2——副本集的组成
通常来说,oplog 使用空间的速度与系统写入的速度差不多:如果在主节点上每分钟写入 1KB 的数据,那么 oplog 就会以每分钟 1KB 的速度被填满。一个更大的 oplog 会占用更多的磁盘空间,但通常这是一个很好的折中,因为磁盘空间一般来说比较便宜,而且实际中使用的 oplog 只有一小部分,所以不会占用太多的RAM。一旦所有的数据库都被克隆,mongod 就会使用这些来自同步源的 oplog 记录来更新它的数据集以反映副本集的当前状态,并将复制过程中发生的所有变更应用到数据集上。原创 2026-07-27 20:26:32 · 108 阅读 · 0 评论 -
MongoDB 4.2——创建副本集
复制是将数据的相同副本保留在多台服务器上的一种方法,建议将其用于所有生产部署中。即使一台或多台服务器停止运行,使用复制功能也可以确保应用程序正常运行和数据安全。在 MongoDB 中,创建副本集(replica set)后就可以使用复制功能了。副本集是一组服务器,其中一个是用于处理写操作的主节点(primary),还有多个用于保存主节点的数据副本的从节点(secondary)。如果主节点崩溃了,则从节点会从其中选取出一个新的主节点。原创 2026-07-27 16:14:48 · 264 阅读 · 0 评论 -
MongoDB 4.2——应用程序设计
最简单的方式是简单地根据应用程序的需要改进数据库模式,以确保应用程序支持所有的旧版模式(例如,接受某些字段的缺失,或者优雅地处理某个字段的多个可能的类型)。一个典型的例子可能是电子商务应用程序中将一个产品的 10条最近的评论保存在“主”(经常访问的)集合中,并将所有旧的评论移动到第二个集合中,只有在应用程序需要多于 10 条评论时才进行查询。此模式具备以下假设:具体来说,每个文档都有有限数量的修订版本,不存在大量需要版本控制的文档,并且查询主要是对每个文档的当前版本进行的。原创 2026-07-27 15:19:16 · 262 阅读 · 0 评论 -
MongoDB 4.2——事务
如上所述,事务是数据库中处理的逻辑单元,包括一个或多个数据库操作,既可以是读操作,也可以是写操作。在某些情况下,作为这个逻辑处理单元的一部分,应用程序可能需要对多个文档(在一个或多个集合中)进行读写。事务的一个重要方面是它永远不会只完成一部分——它要么成功,要么失败。要使用事务,你所部署的 MongoDB 必须是MongoDB 4.2 或更高版本,MongoDB 的驱动程序必须更新为 MongoDB 4.2 或更高版本。原创 2026-07-27 14:28:54 · 336 阅读 · 0 评论 -
MongoDB 4.2——聚合框架
在 MongoDB 以前的版本中,累加器只能在聚合框架的分组阶段中使用。分组阶段执行的功能类似于 SQL 中的GROUP BY 命令。在分组阶段,可以将多个文档的值聚合在一起并对它们执行某种类型的聚合操作,比如计算平均值。来看一个例子:这里,我们使用分组阶段将所有公司根据其成立年份聚合在一起,然后计算每年的平均员工数。输出中包括文档类型的 “_id” 以及平均员工数。这类分析是评估公司成立年份和增长之间相关性的第一步,还可以用来对公司的“年龄”进行标准化。原创 2026-07-27 14:08:02 · 189 阅读 · 0 评论 -
MongoDB 4.2——特殊的索引和集合类型
因此,在基于 text 索引的集合中,写操作的性能会比其他集合差。注意,因为我们的索引是基于文章标题和正文中的词条的,所以这个查询将匹配那些在任何字段中找到这些词条的文档。因此,使用2dsphere 索引的距离计算考虑到了地球的形状,提供了比 2d 索引更准确的距离处理,比如计算两个城市之间的距离。如果一个文档的 “lastUpdated” 字段存在并且它的值是日期类型,那么当服务器端时间比文档的 “lastUpdated” 字段的时间晚 “expireAfterSeconds” 秒时,文档就会被删除。原创 2026-07-27 12:22:09 · 279 阅读 · 0 评论 -
MongoDB 4.2——索引(二)
索引桶(indexbucket)的大小是有限制的,如果某个索引项超过了它 的限制,这个索引项就不会被包含在索引中。这里字段的顺序很重要:{“class_id” : 1, “student_id” : 1} 上的索引与{“student_id” : 1, “class_id” : 1} 上的索引并不相同。结果集在原集合中所占的百分比越大,索引就会越低效,因为使用索引需要进行两次查找:一次是查找索引项,一次是根据索引的指针去查找其指向的文档。然而,在很多情况下,你可能希望仅在键存在时才强制执行唯一索引。原创 2026-07-27 00:02:30 · 250 阅读 · 0 评论 -
MongoDB 4.2——索引(一)
数据库索引类似于图书索引。有了索引便不需要浏览整本书,而是可以采取一种快捷方式,只查看一个有内容引用的有序列表。这使得 MongoDB 的查找速度提高了好几个数量级。不使用索引的查询称为集合扫描,这意味着服务器端必须“浏览整本书”才能得到查询的结果。这个过程基本上类似于在一本没有索引的书中寻找信息:从第 1 页开始,通读整本书。通常来说,我们希望避免让服务器端执行集合扫描,因为对于大集合来说,该过程非常缓慢。来看一个例子。> for (i=0;i<1000000;原创 2026-07-26 23:23:14 · 373 阅读 · 0 评论 -
MongoDB 4.2——查询
我们在 MongoDB 中使用 find 方法来进行查询。查询就是返回集合中文档的一个子集,子集的范围从 0 个文档到整个集合。要返回哪些文档由 find 的第一个参数决定,该参数是一个用于指定查询条件的文档。空的查询文档({})会匹配集合中的所有内容。如果 find没有给定查询文档,则默认为 {}。//将匹配集合 c 中的所有文档(并批量返回)。当开始向查询文档中添加键–值对时,就意味着限定了查询条件。这对于大多数类型来说是一种简单明了的方式:数值匹配数值,布尔类型匹配布尔类型,字符串匹 配字符串。原创 2026-07-26 22:01:26 · 200 阅读 · 0 评论 -
MongoDB 4.2——创建、更新和删除文档
插入操作是向 MongoDB 中添加数据的基本方法。可以使用集合的 insertOne 方法插入单个文档:insertOne 会为文档自动添加一个 “_id” 键(如果你没有提供的话),并将其保存到 MongoDB 中。如果要向一个集合中插入多个文档,那么可以使用insertMany。此方法可以将一个文档数组传递到数据库。这是一种更加高效的方法,因为代码不会为插入的每个文档去请求数据库,而是会批量插入它们。可以在 shell 中尝试以下代码:一次发送数十、数百甚至数千个文档会明显提高插入的速度。如果要原创 2026-07-26 01:13:36 · 387 阅读 · 0 评论 -
MongoDB 4.2——入门指南
MongoDB 自带 JavaScript shell,允许使用命令行与MongoDB 实例进行交互。shell 在很多场景中非常有用,包括执行管理功能、检查正在运行的实例或仅仅是探索 MongoDB。原创 2026-07-25 22:29:09 · 189 阅读 · 0 评论
分享