MongoDB 练习答案与复盘尺
这不是把命令抄一遍的标准答案,而是检查建模假设、查询证据和故障边界的复盘尺。先交自己的 schema、explain 和恢复记录,再对照下面的关键点。
文档建模与 CRUD
答案应说明嵌入/引用的访问模式、文档大小与更新边界;更新操作必须带稳定过滤条件,并能重复执行而不制造重复数据。若选择 $push,要解释数组是否有上限以及何时改成独立集合。
聚合与索引
合格解法会先写出结果粒度,再用 $match、$project、$group 等阶段逐步缩小数据;explain("executionStats") 要记录扫描文档、返回数量和耗时,而不是只截图“有索引”。
副本集与分片
答案应画出主从切换、读偏好和写关注级别,说明故障窗口内哪些读可能滞后。分片题要解释分片键的基数、单调热点、迁移成本和回滚方式;“加机器”不是自动消除热点的咒语。
典型错误
- 把灵活 schema 当成无需验证,导致字段类型漂移。
- 只创建索引不测写放大、内存和排序阶段。
- 把副本集当备份,把分片当高可用。
- 只验证主库成功,不验证重试、断连和恢复后的数据一致性。