我已经构建了一个庞大的字典 - 可能大约有几百千兆字节。有没有一种智能的方法来存储这样的对象。我正在使用以下例程来推送到磁盘:
print "Writing to file..."
jsontext = bson.dumps(sample_dict)
f = open(predump_file, 'wb+')
f.write(jsontext)
f.close()
这是我得到的堆栈跟踪:
Writing to file...
Traceback (most recent call last):
File "Combine.py", line 1331, in <module>
jsontext = bson.dumps(sample_dict)
File "/mnt/opt/Centos5.8/python-2.7.8/lib/python2.7/site-packages/bson/__init__.py", line 69, in dumps
return encode_document(obj, [], generator_func = generator)
File "/mnt/opt/Centos5.8/python-2.7.8/lib/python2.7/site-packages/bson/codec.py", line 207, in encode_document
encode_value(name, value, buf, traversal_stack, generator_func)
File "/mnt/opt/Centos5.8/python-2.7.8/lib/python2.7/site-packages/bson/codec.py", line 177, in encode_value
traversal_stack, generator_func))
MemoryError: out of memory
选择(我现在只能想到这些):
答案 0 :(得分:2)
对于mongo db最大(bson)文档大小为16MB。您无法存储大于此值的数据。
您可以将每个key value
存储为集合中的文档。
在您的情况下,您可以将key
字段用作文档的_id
属性
答案 1 :(得分:0)
我认为这实际上取决于您的词典内容以及您希望以后检索数据的方式。如果我是你,我会选择第二种方法。