Ruby on rails 在Mongoid中使用带有allowDiskUse选项的聚合

Ruby on rails 在Mongoid中使用带有allowDiskUse选项的聚合,ruby-on-rails,mongoid,Ruby On 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) result = ModelName.collection.aggregate([ {"$sort" => { "created_at" => 1

问题:

Sort exceeded memory limit of 104857600 bytes, but did not opt in to external sorting. Aborting operation. Pass allowDiskUse:true to opt in. (16819)
result = ModelName.collection.aggregate([
      {"$sort" => {
          "created_at" => 1
      }}
    ], {'allowDiskUse' => true})
在MongoDB查询中使用sort时,我的内存被超出,并告诉我在查询中使用
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)
result = ModelName.collection.aggregate([
      {"$sort" => {
          "created_at" => 1
      }}
    ], {'allowDiskUse' => true})
我的代码/查询:

Sort exceeded memory limit of 104857600 bytes, but did not opt in to external sorting. Aborting operation. Pass allowDiskUse:true to opt in. (16819)
result = ModelName.collection.aggregate([
      {"$sort" => {
          "created_at" => 1
      }}
    ], {'allowDiskUse' => true})
我的目标:

Sort exceeded memory limit of 104857600 bytes, but did not opt in to external sorting. Aborting operation. Pass allowDiskUse:true to opt in. (16819)
result = ModelName.collection.aggregate([
      {"$sort" => {
          "created_at" => 1
      }}
    ], {'allowDiskUse' => true})

要在mongoid查询中使用
allowDiskUse
选项,以便我可以按创建时间获得排序数据,但我想mongoid不支持它,因此我需要一些替代方法。对我应该做什么有什么建议吗?

你可以像下面这样做。我只需要特定的字段,因此我在查询中添加了“$project”

MyModel.collection.aggregate([
{“$sort”=>{”创建于“=>-1}},
{“$project”=>{“\u id”=>1}}],
{allow_disk_use:true}
)

您可以像下面这样做。我只需要特定的字段,因此我在查询中添加了“$project”

MyModel.collection.aggregate([
{“$sort”=>{”创建于“=>-1}},
{“$project”=>{“\u id”=>1}}],
{allow_disk_use:true}
)

您在这里想要实现什么?如果内存不足,您确实应该重新考虑聚合,添加
$match
$project
以尽早减少数据量,。。。我需要所有数据,然后使用分页。嗯,好的,我会在我做的时候更新你。它必须像6-70万条记录那样排序。我不能使用分页,因为我必须使用排序后的数据来计算数据,所以必须先按创建时间排序,我必须这样做,当前日数据-每天的前一日数据,所以必须对其进行排序。你在这里想实现什么?如果内存不足,您确实应该重新考虑聚合,添加
$match
$project
以尽早减少数据量,。。。我需要所有数据,然后使用分页。嗯,好的,我会在我做的时候更新你。它必须像6-70万条记录那样排序。我不能使用分页,因为我必须使用排序的数据来计算数据,所以它必须先按创建时间排序,我必须这样做,当前日数据-每天的前一日数据,因此必须对它进行排序