繁体   English   中英

MongoDB文件大小限制

[英]MongoDB Document Size Limitations

我有一些小说集,看起来如下:

在此处输入图片说明

单词数组包含所有单词以及与每个单词相关的其他语言信息。 当我尝试添加更长的文本(超过10万个单词)时,出现错误消息:

RangeError:尝试在缓冲区边界之外写入

我收集到的信息意味着BSON文档大于16 mb,因此超出了限制。

我假设这是一个相对常见的情况。 我现在正在考虑如何解决此限制-例如,我可以将小说分成10k个单词的各个块。 还是这意味着该文档应该组成一个单独的集合(即,每个上载的文本一个新的集合)-对我来说意义不大。

在这种情况下,是否存在用于设计MongoDB数据库的标准/建议方法?

另外,在JS / Node中插入文档之前是否可以检查BSON的大小?

您是否绝对需要将书籍的内容存储在MongoDB中? 如果您只是将内容提供给用户或批量处理,我建议将它们存储在磁盘或AWS S3存储桶或类似文件中。

如果您需要书籍内容才能存放在数据库中 ,请尝试使用MongoDB GridFS:

GridFS是用于存储和检索超过16 MB BSON文档大小限制的文件的规范。

GridFS不会将文件存储在单个文档中,而是将文件分为多个部分或大块,并将每个大块存储为单独的文档

当您查询GridFS文件时,驱动程序将根据需要重新组装块。 您可以对通过GridFS存储的文件执行范围查询。 您还可以从文件的任意部分访问信息,例如“跳到”视频或音频文件的中间。

在此处阅读更多信息: https : //docs.mongodb.com/manual/core/gridfs/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM