- 博客(141)
- 收藏
- 关注
原创 [MongoDB小技巧30]MongoDB 数据生命周期管理完全指南:从 TTL 索引到冷热分离归档
生存时间”(Time-To-Live,TTL)索引是 MongoDB 中一种特殊的,MongoDB 可以利用它在指定时间后或特定时钟时间自动从集合中删除文档。数据过期机制对于机器生成的事件数据、日志以及仅需有限留存时间的会话信息等场景尤为适用。,DBA 无需编写额外的清理脚本或定时任务。
2026-08-05 18:37:00
351
原创 [MongoDB小技巧29]MongoDB PITR 深度工程化:从全量备份到“任意时间点”精准回滚
在 MongoDB 中,PITR 并不是一个“一键还原”的魔术按钮,而是的线性组合。全量备份负责提供基线,Oplog 负责将基线“推进”到目标时间点 T。恢复目标时间点 = 全量备份结束时间戳 + Oplog 重放时长(受精确截断)
2026-08-05 17:58:02
437
原创 [MongoDB小技巧28]庖丁解牛 MongoDB 配置:WiredTiger、复制集、安全——一篇顶一本书
许多人误以为“缓存越大越好”,盲目将。
2026-07-10 12:08:17
425
原创 [MongoDB小技巧27]深入浅出MongoDB Replica Set:架构、故障转移与运维实践
MongoDB中的是一组维护相同数据集的mongod进程。复制集提供和,是所有生产部署的基础。在现代MongoDB版本(3.2以后)中,传统的“主从”(Master-Slave)复制模式已经被官方废弃,由功能更强大、更自动化的复制集所取代。
2026-07-10 10:48:22
436
原创 [MongoDB小技巧26]MongoDB 聚合管道深度解析:$group 与累加器完全指南
group阶段根据指定的分组键(Group Key)将具有相同字段或表达式的多个文档合并为单个文档,每个唯一的分组键对应一条输出结果。
2026-07-08 16:06:43
385
原创 [MongoDB小技巧25]MongoDB 聚合管道内核剖析:$match 过滤与 $project 投影的终极指南
match阶段的作用是对文档流进行过滤,只允许匹配条件的文档通过并进入下一阶段。它的查询语法与find()方法完全一致。语法对于每个输入文档,$match输出一个文档(匹配)或零个文档(不匹配)。如果查询谓词返回0null或false,或者查询使用了文档中不存在的字段,该文档将被过滤掉。$project阶段将带有请求字段的文档传递到管道中的下一个阶段。指定的字段可以是输入文档中的已有字段,也可以是新计算的字段。语法$project形式说明<field>: 1 或 true。
2026-07-08 14:33:49
375
原创 [MongoDB小技巧24]MongoDB $lookup 聚合阶段深度解析:从入门到实战
在关系型数据库中,JOIN是再常见不过的操作。而在 MongoDB 这个文档型数据库里,跨集合关联查询的“主角”就是 $lookup。$lookup是 MongoDB 聚合管道中的一个核心阶段,用于对同一数据库中的集合执行,将外部集合中的匹配文档以数组形式添加到每个输入文档中。
2026-07-08 12:01:08
438
原创 [MongoDB小技巧23]数组展开的艺术:深入理解 MongoDB 聚合管道中的 $unwind
在 MongoDB 的聚合框架中, 或许是最容易被低估却也最不可或缺的 stage。当你面对“统计每个标签下的文章数量”、“计算每个商品的独立销售额”、“将嵌套数组扁平化以便关联查询”等需求时, 往往是绕不开的关键一步。简单来说, 将一个文档“炸开”成 N 个文档——这是聚合管道中唯一能将含数组文档变成多条文档的操作符。 提供两种语法形式,满足不同场景的需求。直接将数组字段路径传给 :默认行为:使用此语法时,如果字段值为 、缺失或空数组, 不会输出该文档。从 MongoDB 3.2 开始,支持传入文档对
2026-07-07 17:25:50
630
原创 [MongoDB小技巧22]MongoDB 数据建模从入门到精通:嵌入、引用与三大高级模式深度解析
维度属性模式子集模式扩展引用模式核心目的减少索引数量控制文档大小减少 JOIN 操作解决什么问题大量相似字段的索引爆炸无界数组导致文档过大频繁跨集合查询的性能开销主要手段将相似字段转为键值对数组只保留高频访问的数据子集复制最常用的关联字段代价查询稍复杂数据冗余写放大、数据一致性维护典型场景多语言、多地区属性评论、历史记录订单中的客户/商品信息属性模式是一种 Schema 设计模式,将文档中多个具有共同特征的相似字段合并到一个键值对数组中。
2026-07-07 16:00:52
367
原创 [MongoDB小技巧21]MongoDB RBAC 完全指南:从内置角色到自定义权限的生产级实践
内置角色虽覆盖了常见场景,但生产环境中的权限需求往往更加精细。当内置角色无法满足需求时,必须创建自定义角色。集合级权限隔离:同一数据库下不同集合需要独立的读写权限时。例如,订单库中order_main仅读、order_log可写。操作级精细化:只允许find和insert,但不允许update和delete。业务语义控制:内置角色只管理“能不能执行find”,不管“能不能删user:123的订单”——这类业务权限必须在应用层建模。多业务线隔离:每个业务线专属数据库配最小权限角色,禁用粗粒度的内置角色。
2026-06-29 16:49:58
389
原创 [MongoDB小技巧20]MongoDB 监控基础完全指南:mongostat、mongotop 与内置分析工具
MongoDB 的监控工具可以按和分为四个层次:四个层次不是割裂的,而是一个的闭环。日常靠第四层保底,故障时从第一层切入,逐级下钻。。
2026-06-29 15:00:54
479
原创 [MongoDB小技巧19]MongoDB Oplog 深度解析:原理、配置与最佳实践
参考答案Oplog(operations log)是 MongoDB 副本集中一个特殊的定容集合(capped collection),存储在中。它记录了 Primary 节点上所有修改数据的操作。在复制机制中,Primary 在执行写操作后将操作写入 oplog,Secondary 节点通过异步拉取并重放这些操作来保持数据同步。Oplog 中的每个操作都是幂等的,即多次重放结果相同。如果 Secondary 落后太多,Primary 的 oplog 已经覆盖了未同步的条目,该节点就会变为stale。
2026-06-25 18:10:01
458
原创 [MongoDB小技巧18]MongoDB 读写机制全景解析:从 Read/Write Concern 到 Read Preference 的实战指南
因果一致性保证了逻辑上存在先后依赖的操作,在客户端观察到的结果也符合这一先后顺序。要实现因果一致性,必须在同一个客户端会话(Client Session)中,配合使用。
2026-06-25 14:31:57
634
原创 [MongoDB小技巧17]MongoDB Change Streams 深度解析:从原理到生产实践
Change Streams 是 MongoDB 在 3.6 版本引入的一种持久化变更数据捕获(change data capture,CDC)机制,允许应用程序以实时、顺序的方式监听集合、数据库或整个部署上发生的数据变更事件。它基于复制集的操作日志(oplog)构建,保证顺序性、持久性且支持断点续传。
2026-06-24 17:21:54
487
原创 [MongoDB小技巧16]拒绝数据不一致:MongoDB 事务从入门到生产级实战
解答:这是 MongoDB 内部的一种瞬态错误标签。当发生 WiredTiger 缓存压力、死锁检测(系统自动终止其中一个事务)或网络短暂抖动时,当前事务会被中断。这类错误是分布式系统的正常现象,并非业务逻辑错误。使用或手动捕获该标签进行重试,是保证高可用性的标准做法。
2026-06-24 15:51:24
336
原创 [MongoDB小技巧15]MongoDB 全文搜索全解析:核心机制、性能调优与架构选型
MongoDB 的文本索引(Text Index)是专为自然语言搜索设计的特殊索引类型。与传统的 B-Tree 索引不同,文本索引通过语言感知的分词、停用词过滤和词干提取,在后台构建倒排索引(Inverted Index)结构,从而实现对字符串内容的高效全文搜索。
2026-06-23 14:23:33
408
原创 [MongoDB小技巧14]MongoDB 索引深度剖析:唯一、稀疏与部分索引的底层机制与实战指南
在 MongoDB 的文档模型中,索引是提升查询性能的核心组件。然而,面对非结构化或半结构化数据,传统的索引策略往往会遇到瓶颈。为此,MongoDB 提供了唯一索引(Unique Index)、稀疏索引(Sparse Index)以及更为强大的部分索引(Partial Index)。
2026-06-23 10:40:44
536
原创 [MongoDB小技巧13]深度解析 MongoDB 多键索引:原理、实战与“索引爆炸”避坑指南
在 MongoDB 的灵活文档模型中,数组(Array)和嵌套文档是处理一对多关系(如用户的多个标签、订单中的多个商品)的利器。然而,当我们需要对这些数组字段进行高效查询时,普通的单键索引就会失效。这时,MongoDB 的**多键索引(Multikey Index)**便成为了破局的关键。
2026-06-18 14:43:30
332
原创 [MongoDB小技巧12]深入理解 MongoDB 复合索引与最左前缀原则:从底层 B+ 树到 ESR 最佳实践
在 MongoDB 的性能优化体系中,索引是提升查询效率最核心的利器。当业务查询涉及多个字段时,单字段索引往往捉襟见肘,此时便成为破局的关键。然而,复合索引的设计并非简单的字段堆砌,其底层受限于 B+ 树的存储结构与“最左前缀原则”。
2026-06-18 11:31:54
480
原创 [MongoDB小技巧11]读写性能的博弈:MongoDB 单字段索引核心机制与调优指南
在 MongoDB 数据库的运维与开发中,索引(Index)是提升查询性能的核心手段。然而,索引并非免费的午餐——它在极大提升读取效率的同时,必然会对写入性能产生不可忽视的负面影响。
2026-06-18 10:09:17
346
原创 [MongoDB小技巧09]深入浅出 MongoDB 逻辑运算符:$and、$or、$nor、$not 原理与实战
MongoDB 提供了四种基础的逻辑运算符,它们在查询文档中扮演着不同的角色。
2026-06-15 16:07:12
501
原创 [MongoDB小技巧08]MongoDB 千万级分页性能陷阱:从 Skip 瓶颈到游标分页的架构演进
在 MongoDB 中执行时,数据库底层的执行逻辑并非“直接定位到第 990001 条”,而是“扫描前 990010 条文档,将前 990000 条丢弃,仅返回最后 10 条”。skip()
2026-06-12 15:57:05
315
原创 [MongoDB小技巧07]MongoDB 深度解析:find中投影与排序的底层机制与性能调优实战
维度投影 (Projection)排序 (Sort)核心作用减少网络 I/O,触发覆盖索引数据有序展示,支撑分页与聚合语法规范1(包含)/0(排除),除_id外严禁混用1(升序)/-1(降序),支持多字段复合排序性能瓶颈返回过多无用大字段导致带宽浪费内存排序超 100MB 报错,深分页性能差最佳实践始终显式指定所需字段,排除_id结合复合索引遵循 ESR 规则,大分页用范围查询替代 skip。
2026-06-12 14:26:59
476
原创 [MongoDB小技巧06]一文读懂 MongoDB 删除机制:deleteOne、deleteMany 与 drop 的架构级对比
MongoDB 的删除操作主要分为文档级和集合级。
2026-06-04 11:56:13
518
原创 [MongoDB小技巧05]拒绝数据覆盖陷阱:MongoDB 更新操作符与 Upsert 机制全解析
MongoDB 提供了多种更新文档的方法,理解它们的执行边界是避免生产事故的第一步。
2026-06-04 08:45:00
367
原创 [MongoDB小技巧04]驾驭 MongoDB 查询:$eq、$gt、$in 与 $and 的最佳实践指南
比较操作符是构建查询语句的基石。它们通常用于筛选特定字段满足特定条件的文档。$eq 是最基础的操作符,用于匹配字段值等于指定值的文档。$eq1"1"$gt 用于选择字段值大于指定值的文档。它同样适用于日期和字符串(按字典序比较)。$ in 用于匹配字段值等于指定数组中任意一个值的文档。它是$or条件在同一个字段上的高效简写。$or$in。
2026-05-28 16:54:20
387
原创 [MongoDB小技巧03]解密 MongoDB 的基石:insertOne、find 与 12 字节 ObjectId 的全景解析
在 MongoDB 中,是最基础的单文档写入方法。虽然其调用方式简单,但在实际的生产环境中,理解其返回值与异常处理机制至关重要。当我们执行时,MongoDB 会尝试将指定的文档插入到目标集合中。如果文档中未显式指定_id字段,数据库驱动会自动为其生成一个唯一的ObjectId。trueinsertedId在分布式架构中,数据的可靠性是第一位的。MongoDB 默认的主键_id具有唯一性约束。如果尝试插入一个与现有文档_id重复的文档,数据库将抛出写异常(WriteError),错误代码通常为。
2026-05-28 15:55:46
526
原创 [MongoDB小技巧02] 掌握 MongoDB 基础:容器化部署、默认配置与 mongosh 核心命令全解析
使用 Docker 部署 MongoDB 不仅规避了复杂的环境依赖问题,还能让开发者专注于数据库本身的特性。
2026-05-26 17:33:36
406
原创 [MongoDB小技巧01]从入门到精通:MongoDB 文档模型与动态 Schema 深度剖析
MongoDB 的数据组织形式在逻辑上非常直观,主要分为三个层级:文档(Document)、集合(Collection)和数据库(Schema)。MongoDB 的文档在内存和磁盘中并非以 JSON(JavaScript Object Notation)文本形式存储,而是采用了一种称为 BSON(Binary JSON)的二进制序列化格式。这是 MongoDB 与传统关系型数据库最大的不同点之一。在 RDBMS 中,表结构(Schema)是预先定义且严格受限的,每一行数据必须符合表定义。
2026-05-26 10:30:08
537
原创 [Redis小技巧33]Redis 内核解密:从一条查询命令看数据存储与处理的全链路
Redis 内核解密:从一条查询命令看数据存储与处理的全链路
2026-04-16 17:57:04
515
原创 [Redis小技巧32]Redis分布式锁的至暗时刻:从原理演进到时钟跳跃的终极博弈
Redis分布式锁的至暗时刻:从原理演进到时钟跳跃的终极博弈
2026-04-16 16:23:58
394
原创 [Redis小技巧31]Redisson 可重入锁(RLock)深度解剖:彻底搞懂 Redisson 的 Watchdog(看门狗)与 Lua 脚本
Redisson 可重入锁(RLock)深度解剖:彻底搞懂 Redisson 的 Watchdog(看门狗)与 Lua 脚本
2026-04-01 11:44:27
463
原创 [Redis小技巧30]RedLock 深度剖析:从算法原理到“时钟漂移”的致命缺陷
RedLock 深度剖析:从算法原理到“时钟漂移”的致命缺陷
2026-03-30 16:43:30
539
原创 [Redis小技巧29]从 Setnx 到 Redlock:Redis 分布式锁的演进之路与生产级实践
从 Setnx 到 Redlock:Redis 分布式锁的演进之路与生产级实践
2026-03-30 16:19:31
443
原创 [Redis小技巧28]深入Redis集群机制:Redis Cluster 6 节点集群从搭建到内核原理解析
深入Redis集群机制:Redis Cluster 6 节点集群从搭建到内核原理解析
2026-03-27 08:45:00
365
原创 [Redis小技巧27]Redis Cluster 全景指南:Gossip 协议、故障转移与生产避坑实战
Redis Cluster 全景指南:Gossip 协议、故障转移与生产避坑实战
2026-03-25 16:51:00
490
原创 [Redis小技巧26]亿级流量背后的守护神:手写式解析 Redis 哨兵监控、选举与灾难恢复
亿级流量背后的守护神:手写式解析 Redis 哨兵监控、选举与灾难恢复
2026-03-25 08:45:00
537
原创 [Redis小技巧25]深入解析 Redis 官方模块:RedisJSON、RedisSearch、RedisBloom、RedisTimeSeries 与 RedisGraph 全面指南
深入解析 Redis 官方模块:RedisJSON、RedisSearch、RedisBloom、RedisTimeSeries 与 RedisGraph 全面指南
2026-03-23 17:55:16
593
原创 [Redis小技巧24]Redis主从复制深度解剖:不只是SLAVEOF,Redis主从复制背后的RunID、Backlog
Redis主从复制深度解剖:不只是SLAVEOF,Redis主从复制背后的RunID、Backlog
2026-03-23 15:36:06
840
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅