MongoDB 的设计规范,真的是前端+全栈打交道时绕不过去的坎。
MongoDB 的Document 结构其实就像 JSON 对象,一看就懂,用起来顺手。Collection有点像表,但你可以直接往里塞嵌套结构,省得搞复杂的联表查询。挺适合做那种结构灵活、变化频繁的业务。
像用户资料这种东西,订单信息直接塞进去最方便,用嵌套搞定,查询性能也高不少。实在搞不成嵌套,存几个ID 数组也行,比如refer_books: [bookId1, bookId2]
,别忘了考虑16MB 的 BSON 文档限制,数据太大要提前拆。
MongoDB 有个挺好用的特性就是Capped Collection,写入快,像日志存储就合适。你还得注意索引,别一股脑建太多。推荐搞复合索引,空间占得少,查起来也快。
命名上,数据库建议统一用DB_
前缀,字段名别用拼音,idx_字段名_1这种命名规则也挺清晰,最多 128 个字符,够用了。
聚合、排序那些操作,在数据量大的时候要留神。sort最好提前放,能用索引加速就别犹豫。还有,字段过滤和批量插入真的是提效利器,写代码的时候别偷懒。
连接数据库也得走mongodb://user:pass@ip:port/db
那套 URI 格式,顺手设个wtimeout
,防止写超时卡死。写入确认用w: "majority"
,保险。读取不急的,用readPreference=secondaryPreferred
,让主节点轻松点。
如果你要搞个 Mongo 相关项目,这份规范可以说是挺值得收藏的,少走多弯路。