SuperAPI AI 工具集

mongodb

设计与创作

查看项目

更新于 10-15 21:49

技能介绍

用途:MongoDB 是文档数据库,以类 JSON 的 BSON 文档存储数据,属于 NoSQL 数据库,以灵活性和可扩展性著称。本技能用于在需要灵活 JSON 文档存储、高吞吐运营数据存储、丰富聚合管道、全局分片与地理空间索引等场景下提供专家级协助。

主要能力:BSON 文档与模式灵活性,支持原生日期、64 位整数、小数和地理空间点;多阶段聚合框架,可依次执行 $match、$unwind、$group、$sort、$limit 等阶段;$lookup 跨集合关联与 $facet 分页;副本集与自动故障转移,通过三节点主从选举保障高可用;分片实现集合水平扩展;2dsphere 地理查询。

使用方式:以 Node.js 为例,可用 Mongoose 定义 Schema 并保存文档:const kittySchema = new mongoose.Schema({ name: String }); const Kitten = mongoose.model("Kitten", kittySchema); const silence = new Kitten({ name: "Silence" }); await silence.save(); 聚合查询通过 db.orders.aggregate([...]) 执行。

最佳实践:按数据访问模式设计,常一起读取的数据内嵌,预期无限增长的数据用引用;复合索引遵循 ESR 规则(等值、排序、范围);用 $jsonSchema 启用集合级校验;用 bulkWrite() 批量写入。避免文档内无界数组、过度使用 $lookup、无索引查询,可用 .explain("executionStats") 确认走 IXSCAN 而非 COLLSCAN。

常见问题:查询超时多因全集合扫描,需补建匹配过滤与排序的复合索引;WriteConflict 源于并发修改同一文档,可在应用层加重试;单文档超过 16MB 限制时,应把无界子数组拆到独立集合并用父引用关联。

限制:MongoDB 不是关系型数据库,大量多集合连接会显著降低吞吐;单文档上限 16MB;无界数组会损害性能。具体版本、收费与部署细节资料暂未提供。