在 Mongoid 中使用带有选项 allowDiskUse 的聚合
Using aggregate with options allowDiskUse in Mongoid
问题:
我的内存在 MongoDB 查询中使用排序时超出了范围,并告诉我在查询中使用 allowDiskUse:true
选项。但是在 rails mongoid 中,聚合函数不传递任何选项。
我得到的错误:
Sort exceeded memory limit of 104857600 bytes, but did not opt in to external sorting. Aborting operation. Pass allowDiskUse:true to opt in. (16819)
我的Code/Query:
result = ModelName.collection.aggregate([
{"$sort" => {
"created_at" => 1
}}
], {'allowDiskUse' => true})
我的Objective:
在 mongoid 查询中使用 allowDiskUse
选项,以便我可以按创建时间获取排序数据,但我猜 mongoid 不支持它,所以我需要一些替代方法。对我应该做什么有什么建议吗?
你可以像下面那样做。我只想要特定的字段,因此我在查询中添加了“$project”。
MyModel.collection.aggregate([
{"$sort" => {"created_at" => -1}},
{"$project" => {"_id" => 1}}],
{allow_disk_use: true}
)
问题:
我的内存在 MongoDB 查询中使用排序时超出了范围,并告诉我在查询中使用 allowDiskUse:true
选项。但是在 rails mongoid 中,聚合函数不传递任何选项。
我得到的错误:
Sort exceeded memory limit of 104857600 bytes, but did not opt in to external sorting. Aborting operation. Pass allowDiskUse:true to opt in. (16819)
我的Code/Query:
result = ModelName.collection.aggregate([
{"$sort" => {
"created_at" => 1
}}
], {'allowDiskUse' => true})
我的Objective:
在 mongoid 查询中使用 allowDiskUse
选项,以便我可以按创建时间获取排序数据,但我猜 mongoid 不支持它,所以我需要一些替代方法。对我应该做什么有什么建议吗?
你可以像下面那样做。我只想要特定的字段,因此我在查询中添加了“$project”。
MyModel.collection.aggregate([
{"$sort" => {"created_at" => -1}},
{"$project" => {"_id" => 1}}],
{allow_disk_use: true}
)