文档模型与 mongosh
安装与连接
mongosh 常用命令:
BSON 与文档
MongoDB 底层用 BSON(Binary JSON)存储,扩展了 JSON 的类型:
Tip
金额在 MongoDB 中应使用 Decimal128(NumberDecimal),而非 Double,以避免浮点误差。Go 端对应 primitive.Decimal128。
集合与命名
- 集合相当于关系型的表,但不强制 schema。
- 集合名区分大小写,建议清晰命名(复数、小写)。
- 可通过校验器约束文档结构:
用 Go 连接 MongoDB
Warning
mongo.Connect 是惰性的,不会立即建立连接,务必用 Ping 验证。mongo.Client 应作为长生命周期单例复用(内部维护连接池),不要每次请求都新建。
小结
- MongoDB 以 BSON 文档存储,
_id默认由ObjectId生成。 - 建模核心是「嵌入 vs 引用」,并警惕 16MB 文档上限与无界数组。
- 灵活 schema 需要用校验器或应用层约束兜底。
- Go 使用官方
mongo-driver,复用客户端并Ping验证连接。