查询子数组列表后进行排序和分页

我有一个要从数据库获取用户的订单列表。在每个订单信息列表中,都有一个 match 属性,该属性是一个对象数组(称为匹配顺序)。

假设匹配顺序具有2个属性: id createdAt 。 现在,我想在订单列表中获取所有匹配的订单,按createdAt排序,然后将它们分页到匹配的页面,以限制查询参数。

我的旧解决方案 :查询所有用户的订单列表,然后获取所有匹配的订单,对它们进行排序,最后使用 slice 方法进行分页。 第一次看起来不错,因为我还没有很多订单。

但是现在,我遇到了Mongo的错误:内存排序限制为32MB -详细的 查找器::执行期间的执行器错误,由::排序操作所使用的RAM超过了最大33554432字节。添加索引,或指定一个较小的限制。

我研究了这个错误,也许我应该为match属性建立索引,但是我认为最大的问题是查询。

有关数据库中的ordes列表的示例:

[{
 orderId: 1,match: [
  { id: 1,createdAt: 1 },{ id: 2,createdAt: 6 },...]
},{  
 orderId: 2,match: [
  { id: 3,createdAt: 4 },{ id: 4,createdAt: 3 },...]
 }
]
==> expected: [ { id: 1,{ id: 3,createdAt: 6 }]

xiaoweiba2000 回答:查询子数组列表后进行排序和分页

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2624869.html

大家都在问