MongoDB Sort 内存问题

MongoDB Sort 内存问题 0. 问题描述

# python client.find(filter_).sort('updatedAt', sort_).skip(skip_).limit(limit_)

在 MongoDB 分页查询时, 因为排序的数据太大会有内存问题. 有三种解决方案
1. 设置排序字段索引
db.getCollection('col').createIndex({"updatedAt": 1})

2. 提高数据库排序的内存上限
db.adminCommand({setParameter: 1, internalQueryExecMaxBlockingSortBytes: 104857600})

3. 更换 aggregate 进行查询 (最优方案)
【MongoDB Sort 内存问题】更换 aggregate 进行查询, 并设置 allowDiskUse 为 True 允许使用磁盘
# python client.aggregate([ {'$match': {}}, {'$sort': {'updatedAt': 1}}, {'$skip': 10000}, {'$limit': 10}, ], allowDiskUse=True)

    推荐阅读