mongodb - 溢出排序阶段缓冲数据使用量超过内部限制

使用代码:

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 按排序顺序将文档流式传输给您,而不是尝试将它们全部加载到服务器上的内存中并在将它们发送到客户端之前在内存中对其进行排序。

https://stackoverflow.com/questions/27023622/

相关文章:

database-design - MongoDB Schema Design - 许多小文档还是更

mongodb - 有没有一种简单的方法可以从 meteor 部署的应用程序中导出数据?

javascript - Mongoose:获取完整的用户列表

node.js - 编译 Mongoose 后无法覆盖模型

node.js - 如何保护 Mongoose/MongoDB 中的密码字段,以便在填充集合时它不会

mongodb - 面向列的 NoSQL 与面向文档的 NoSQL 有何不同?

python - 插入后如何更新 Mongo 文档?

MongoDB - 分页

mongodb - Mongoose 唯一索引不起作用!

node.js - 在 Mongoose 中将两个 OR 查询与 AND 组合