我在Windows上使用'/ showIncludes'分析构建中的包含,在*nix,flags上分析'-H'.
我正在用python脚本解析这个信息.包含的每个文件都会变成一个对象,列出其子项(包含的文件)和祖先(包含此文件的包含路径).
创建这些对象后,我想使用pymongo将它们推入mongodb数据库.
这适用于99%的包含.但是~5非常大.当我尝试将它们添加到mongodb时,它会抱怨.
Traceback (most recent call last): File "mongodb.py", line 94, inincludes_collection.update({'id': include.include_id}, { 'ancestor_tree': ancestor_tree_ids } ) File "C:\Python27\lib\site-packages\pymongo-2.7.2-py2.7-win-amd64.egg\pymongo\collection.py", line 551, in update docs, check_keys, self.uuid_subtype, client) DocumentTooLarge: command document too large
阅读mongo这似乎是一个设计选择.默认情况下,文档不能超过16Mb.但是可以使用--nssize命令行选项覆盖它.看到
http://docs.mongodb.org/manual/reference/program/mongod/#bin.mongod
所以我用--nssize 32/64/128重新运行了mongod.我认为我的任何包含对象都不超过128Mbs.但问题仍然存在.
所以我现在想知道是否应该责怪pymongo.它是否尊重此服务器设置?
我的mongod版本是
db version v2.6.3 2014-08-28T16:56:51.534 + 0100 git version:255f67a66f9603c59380b2a389e386910bbb52cb
我正在使用pymongo-2.7.2-py2.7-win-amd64.
无论如何都可以解决这个限制吗?