我使用的是mongo 2.6.1.我想从json文件> 16 MB导入数据.json是一系列文档.根据他们的文档,如果我使用该--jsonArray选项,文件只能是16MB,请参阅http://docs.mongodb.org/manual/reference/program/mongoimport/
奇怪的是,我已经设法导入数据> 16 MB(24MB)使用mongoimport没问题,通过这样做:
mongoimport -db mydb --collection product --file products.json --jsonArray
Run Code Online (Sandbox Code Playgroud)
那么16MB的限制是什么呢?
16 MB是MongoDB BSON文档大小限制.这意味着MongoDB中的任何文档都不能超过16 MB.
请注意,MongoDB文档的JSON表示可能超出此限制,因为BSON更紧凑.
--jsonArrayflag 的问题是首先mongoimport将整个.json文件作为单个文档读取,然后对其每个元素执行导入,从而遭受BSON文档大小限制.
2.5.x及更高版本)的解决方案我刚刚使用非常大的JSON数组(~200 MB)测试mongoimport了最新的MongoDB 2.6.4,它运行得很好.
我很确定使用MongoDB这样的操作是不可能的2.2.x.所以,看起来mongodb.org只是忘了更新mongoimport文档.
我搜索了MongoDB bug跟踪器并发现了这个问题.根据它,这个问题在一年前解决了,修复程序是在MongoDB上发布的2.5.0.
所以,随意导入大型JSON文档!
2.5.0)如果你使用旧版本的MongoDB,仍然可以使用--type jsonflag代替而导入大量文档--jsonArray.但是它假定从中导入文件的特殊结构.它与JSON格式类似,只是每行只允许一个文档,每个文档后面没有逗号:
{ name: "Widget 1", desc: "This is Widget 1" }
{ name: "Widget 2", desc: "This is Widget 2" }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3475 次 |
| 最近记录: |