我正在使用mongo 2.6.1。我想从> 16 MB的json文件导入数据。json是一组文档。根据他们的文档(如果我使用该--jsonArray
选项),文件只能为16MB,请参阅http://docs.mongodb.org/manual/reference/program/mongoimport/
奇怪的是,通过执行以下操作,我已经设法使用mongoimport导入了大于16 MB(24MB)的数据:
mongoimport -db mydb --collection product --file products.json --jsonArray
那么,这16MB的限制是多少?
MongoDB BSON文档大小限制为16 MB 。这意味着MongoDB中的任何文档都不能超过16 MB。
请注意,由于BSON更紧凑,因此MongoDB文档的JSON表示形式可能会超出此限制。
--jsonArray
标志的问题在于,首先mongoimport
将整个.json
文件作为单个文档读取,然后对其每个元素执行导入,因此受到BSON文档大小限制。
2.5.x
及更高版本)的解决方案我刚刚使用非常大的JSON数组(〜200 MB)mongoimport
对最新的MongoDB2.6.4
进行了测试,并且效果很好。
我很确定MongoDB不可能进行这样的操作2.2.x
。因此,看起来mongodb.org只是忘记了更新mongoimport
文档。
我搜索了MongoDB错误跟踪器,发现了此问题。据此,此问题在一年前已得到解决,该修复程序随MongoDB一起发布2.5.0
。
因此,随时导入大型JSON文档!
2.5.0
)如果您使用的是旧版的MongoDB,仍然可以使用--type json
flag而不是来导入大量文档--jsonArray
。但它假设要从中导入文件的特殊结构。它类似于JSON格式,不同之处在于每行只允许一个文档,并且每行之后都没有逗号:
{ name: "Widget 1", desc: "This is Widget 1" }
{ name: "Widget 2", desc: "This is Widget 2" }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句