基于MongoDB开发

基于MongoDB开发

2020/9/101 min
张筱

张筱

AI工程师

本文记录我在开发中使用 MongoDB 和 Mongoose 时遇到的问题。

文件大小限制

根据官方文档,MongoDB 中的每个文档都不应超过 16 MB。对于大多数非文件形式的数据,开发中不会触及到这个限制。但当文档大小超出限制时,就需要做一些处理。

最直观且简单的方案是将数据分割保存在不同的文档中。对于初始文档较小的数据来说,这是最简单的解决方案。

flow

如上图所示,当向文档中插入新数据时,初次尝试默认可以成功。当收到错误码 17419 或 10334 时,服务器因最终文档会超过 16 MB 而拒绝请求。这时就必须创建新的文档来储存数据。

这个方案需要在应用层加入额外的处理逻辑,比如读取时融合多个文档的数据。但是插入数据时的 overhead 极小。