【发布时间】:2019-05-29 00:39:22
【问题描述】:
我有一个 mongo 查询,它有多个查找,但它返回一个错误
排序超出了 104857600 字节的内存限制,但未选择外部排序。中止操作。通过 allowDiskUse:true 选择加入
我已经在我的聚合查询中添加了允许磁盘大小为真
await Service.aggregate(pipeline)
.allowDiskUse(true)
.exec();
【问题讨论】:
-
您使用的是哪个版本的 MongoDB,您执行的是哪种聚合操作?我认为
allowDiskUse并不适用于所有这些。 -
您是连接到已安装的 MongoDB 部署,还是连接到云服务?如果您使用的是云服务(尤其是免费套餐),则可能不支持
allowDiskUse选项。 -
@Caffeinated.tech 5.2.7 版,
services.aggregate([ { '$addFields': { name_lc: { '$toLower': '$name.value_en' } } }, { '$match': { isDeleted: false } }, { '$lookup': { from: 'servicecategories', localField: 'serviceCategory', foreignField: '_id', as: 'category' } }, { '$sort': { name_lc: 1 } }, { '$skip': 0 }, { '$limit': 10 }, { '$project': { 'category.defaultQuantities': 0 } } ], { allowDiskUse: true }) -
@Stennie 我正在使用付费的 mongo atlas
-
您的付费 Atlas 集群共享层(M2 或 M5)吗?
allowDiskUse选项当前需要专用集群 (M10+) - 请参阅 Operational Limitations。