使用代码:
all_reviews = db_handle.find().sort('reviewDate', pymongo.ASCENDING)
print all_reviews.count()
print all_reviews[0]
print all_reviews[2000000]
计数打印 2043484
,它打印 all_reviews[0]
。
但是在打印 all_reviews[2000000]
时,我得到了错误:
pymongo.errors.OperationFailure: database error: Runner error: Overflow sort stage buffered data usage of 33554495 bytes exceeds internal limit of 33554432 bytes
我该如何处理?
最佳答案
您的内存排序遇到了 32MB 的限制:
https://docs.mongodb.com/manual/reference/limits/#Sort-Operations
为排序字段添加索引。这允许 MongoDB 按排序顺序将文档流式传输给您,而不是尝试将它们全部加载到服务器上的内存中并在将它们发送到客户端之前在内存中对其进行排序。
关于mongodb - 溢出排序阶段缓冲数据使用量超过内部限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27023622/