使用PyMongo的MongoDB排序溢出
我有一个集合“doc”,其中包含一个名为“topic”的字段。它被初始化为-1,当我得到主题时,我用相应的主题(例如体育)更新字段。当我在PyMongo中进行查询时使用PyMongo的MongoDB排序溢出,mongodb,sorting,pymongo,Mongodb,Sorting,Pymongo,我有一个集合“doc”,其中包含一个名为“topic”的字段。它被初始化为-1,当我得到主题时,我用相应的主题(例如体育)更新字段。当我在PyMongo中进行查询时db[“doc”]。查找({“topic”:-1})。排序(“time”,PyMongo.DESCENDING)。批处理大小(批处理大小) 我明白了 数据库错误:getMore执行器错误:33554846字节的溢出排序阶段缓冲数据使用量超过33554432字节的内部限制 但是,当我在mongo shell上运行此查询时: db.doc
db[“doc”]。查找({“topic”:-1})。排序(“time”,PyMongo.DESCENDING)。批处理大小(批处理大小)
我明白了
数据库错误:getMore执行器错误:33554846字节的溢出排序阶段缓冲数据使用量超过33554432字节的内部限制
但是,当我在mongo shell上运行此查询时:
db.doc.find({“topic”:-1}).sort({“time”:-1}).batchSize(10000)
,它可以正常工作。我有单索引-{time:-1},{topic:1}和复合索引-{topic:1,time:-1}(复合索引)。这种行为有什么原因吗?db[“doc”]。查找({“topic”:-1})。排序(“time”,pymongo.DESCENDING)。批大小(batch\u size)这里的批大小是多少?很奇怪。你可以试着只选择10,并确保你得到的结果时间下降。