在没有$ sort的情况下聚合指定字段中具有$ max值的所有文档

时间:2018-05-07 12:48:53

标签: mongodb

我有一个mongodb集合,项目价格按日期排列。

<li ng-repeat="item in ctrl.getItems()" ng-init="rank = $index">
  [$index: {{$index}}]
  {{item}}<br/>
  <label>
    Move to
    <input type="number" ng-model="rank"/>
  </label>
  <button type="button" ng-click="ctrl.moveItem($index, rank)">
    Ok
  </button>
</li>

有些商品的最后几个月没有价格。

我应该收集每件商品的最后价格。

我创建了查询:

{ "_id" : { "item" : "eggs", "date" : "2018-03-02" }, "price" : 2.20 }
{ "_id" : { "item" : "meat", "date" : "2018-03-02" }, "price" : 12.12 }
{ "_id" : { "item" : "bread", "date" : "2018-03-02" }, "price" : 3.45 }
{ "_id" : { "item" : "eggs", "date" : "2018-03-03" }, "price" : 2.30 }
{ "_id" : { "item" : "bread", "date" : "2018-03-03" }, "price" : 3.35 }

但结果是:命令失败,错误16819:'排序超出内存限制104857600字节,但没有选择进入外部排序。中止操作。传递allowDiskUse:true以选择加入。

我不想设置allowDiskUse:true。看起来mongo重新安排了磁盘上的总价格收集。

有人知道没有DiskUse的解决方案吗?

0 个答案:

没有答案