我比我想从Mongo导入多个文档到批处理RAM更困难的时间。我正在编写一个应用程序来通过pymongo
与MongoDB进行通信,该应用程序目前有2GB,但在不久的将来可能会增长到1TB以上。因此,一次将有限数量的记录批量读入RAM对于可伸缩性非常重要。文档批量导入困难,pymongo
基于this post和this documentation我想这将是一样容易为:
HOST = MongoClient(MONGO_CONN)
DB_CONN = HOST.database_name
collection = DB_CONN.collection_name
cursor = collection.find()
cursor.batch_size(1000)
next_1K_records_in_RAM = cursor.next()
这不是为我工作,但是。尽管我有一个Mongo集合,其中包含大于200K个BSON对象,但它们一次只读一个作为单个词典,例如单个词典。 {_id : ID1, ...}
而不是我正在查找的内容,这是我的收藏中代表多个文档的字典的错误,例如, [{_id : ID1, ...}, {_id : ID2, ...}, ..., {_id: ID1000, ...}]
。
我不希望这个问题,但我在python 3.5而不是2.7。
由于本示例引用了安全的远程数据源,因此这不是一个可重复的示例。为此道歉。如果您对如何改善问题有所建议,请告诉我。
好吧,所以如果我想创建一个迭代器,从我的本地RAM中的数据库一次返回1000个文档,我该怎么做? – Aaron
collection.find({...},limit = 1000) – nickmilon
看起来不错,谢谢! – Aaron