使用代码:

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]时,我得到了一个错误:

皮Mongo .错误.OperationFailure:数据库错误:运行程序错误:溢出排序阶段缓冲数据使用33554495字节超过33554432字节的内部限制

我该怎么处理?

推荐答案

内存中的排序将达到32MB的限制:

https://docs.mongodb.com/manual/reference/limits/#Sort-Operations

向排序字段添加索引.这使得MongoDB能够以排序的顺序将文档流式传输给您,而不是试图将它们全部加载到服务器上的内存中,并在将它们发送到客户端之前在内存中进行排序.

Mongodb相关问答推荐

在单个mongo文档中组合数组与聚合

如何在Golang保存到MongoDB时排除空数据值的问题?

如何使用聚合管道查找未销售但存在于产品详细信息集合中的产品的ID

我无法在react 中使用 fetch 和express 从数据库中删除数据

如何在 kubernetes 中获取分片 mongodb 的备份

如何判断 mongodb 聚合,该文档具有键,该键是一个数组,其第二个元素是否存在?

通过 docker 运行的 MongoDB 服务器无法互相看到(名称解析中的临时故障)

如何在mongoDB中按嵌套文档分组( group by )

MongoDB - 文档中多个数组大小的总和

从嵌套数组中 id 匹配的另一个集合中获取所有字段

Mongodb:查询嵌套在数组中的json对象

如何在 MongoDB 集合中查找与给定条件匹配的文档和单个子文档

如何对连接到 mongo 的方法进行单元测试,而不实际连接到 mongo?

如何在mongodb中删除数组的第n个元素

错误:Could not connect to any servers in your MongoDB Atlas cluster

mongodb:upserting:仅在插入文档时设置值

MongoError:Can't extract geo keys from object

mongoosefind()不返回结果

mongodb安装失败运行mongod

Mongoose upsert 不创建默认模式属性