如何增加mongodb BSON文档大小

时间:2016-03-26 09:04:24

标签: mongodb mongodb-query

当我尝试使用聚合连接从我的集合中获取文档时,我收到错误"聚合结果超过最大文档大小(16MB)"我也在使用" {allowDiskUse:true}"在我的代码中,但它再次显示错误。请让我知道如何解决它?

1 个答案:

答案 0 :(得分:1)

如上所述,您正在炸毁“响应”大小限制,因为您没有返回“光标”而.aggregate()正在尝试将结果返回到单个BSON文档中。

相反,请使用生成stream界面的"cursor"选项,然后您可以对以下事件采取行动:

 db.collection("bags", function (err, bags) { 

  var result = [];

  var cursor = bags.aggregate(
    [
      { "$sort": { "todayDate": -1 }}, 
      //{ "$match": {}}, 
      { "$lookup": { 
        "from": "donor", 
        "localField": "regNo", 
        "foreignField": "regNo", 
        "as": "donordata" 
      }}, 
      { "$unwind": { "path": "$donordata", "preserveNullAndEmptyArrays": true}} 
    ], 
    { 
      "allowDiskUse": true,
      "cursor": { "batchSize": 20 }
    }
  );


  cursor.on("data",function(data) {
    result.push(data);
  });

  cursor.on("end",function() {
    res.json(result);
  })

});

理想情况下,您也应该在编写输出行时使用流,例如使用JSON的流编写器。但是出于示例目的,我们只是将数据附加到数组中,用于迭代的每个游标结果。