MongoDB-JavaScript:Web应用程序停止工作是因为MongoDB已满?

MongoDB-JavaScript:Web应用程序停止工作是因为MongoDB已满?,javascript,mongodb,heroku,Javascript,Mongodb,Heroku,我有一个非常小的例子网站作为测试。我正在记录船只的纬度/经度和其他信息,并将它们连续发送到我的MongoDB,正如您在下面看到的,它现在似乎已经满了。它还说:显示2984034中的文档1-20,并且有一个最大限制(由我设置),如图所示,已经达到: 我收到的错误是来自Heroku平台的5XX错误,这意味着请求失败,现在我想知道这是否是因为我的外部数据库MongoDB基本上已满? 那会发生吗 仔细调试后,我的应用程序在以下API路径上失败: app.route("/update").post(s

我有一个非常小的例子网站作为测试。我正在记录船只的纬度/经度和其他信息,并将它们连续发送到我的
MongoDB
,正如您在下面看到的,它现在似乎已经满了。它还说:
显示2984034中的文档1-20
,并且有一个最大限制(由我设置),如图所示,已经达到:

我收到的错误是来自
Heroku
平台的
5XX
错误,这意味着
请求失败
,现在我想知道这是否是因为我的外部数据库
MongoDB
基本上已满? 那会发生吗

仔细调试后,我的应用程序在以下API路径上失败:

app.route("/update").post(scowlogController.createNewScowLog);
下面是Heroku日志的摘录。此外,如果这可能是有用的,是一个更精确的打印屏幕下面的初始帖子:

在代码scowlog_controller.js的一个小摘录下面,您将看到我编写的一些部分输出一个警告,如
返回res.status(500).send(err)以防发生什么事情

但是,这会不会让整个网站停止工作??:

exports.listAllScowLogs = (req, res) => {
  ScowLog.find({}, (err, task) => {
    if (err) {
      return res.status(500).send(err);
    }
    res.status(200).json(task);
  });
};


exports.createNewScowLog = (req, res) => {
  let newScowLog = new ScowLog(req.body);
  let scow = scowController.registerScowById(newScowLog.scow);


  var ip = req.headers["x-forwarded-for"];
  if (ip){
    var list = ip.split(",");
    ip = list[list.length-1];
  } else {
    ip = req.connection.remoteAddress;
  }
  newScowLog.ip = ip;

  newScowLog.save((err, task) => {
    if (err) {
      return res.status(500).send(err);
    }

    res.status(201).json({"Status":"Success"});
  });
};

function chunk (arr, len) {

  var chunks = [],
      i = 0,
      n = arr.length;

  while (i < n) {
    chunks.push(arr.slice(i, i += len));
  }

  return chunks;
}

exports.createNewScowLogs = (req, res) => {

  var ip = req.headers["x-forwarded-for"];
  if (ip){
    var list = ip.split(",");
    ip = list[list.length-1];
  } else {
    ip = req.connection.remoteAddress;
  }

  req.body.forEach((scw) => {
    scw.ip = ip;
  });

  let newlogs = chunk(req.body, 400);

  let promises = [];
  newlogs.forEach((logs) => {
    promises.push(new Promise((resolve, reject) => {
      ScowLog.insertMany(logs, (err) => {
        if(err) {
          return reject(err);
        }
        else {
          return resolve("Success");
        }
      });
    }));
  });

  Promise.all(promises).then((result) => {
    return res.status(201).json({"Status":"Success"});
  }).catch((err) => {
    return res.status(500).send(err);
  });
};
exports.readScowLog = (req, res) => {
  ScowLog.findById(req.params.scowid, (err, task) => {
    if (err) {
      return res.status(500).send(err);
    }
    res.status(200).json(task);
  });
};

exports.deleteScowLogsOlderThanOneWeek = (req, res) => {
  var lastweek = moment().add(-7, 'days');
  ScowLog.remove({ created: { "$lt": lastweek } }, (err, task) => {
    if (err) {
      return res.status(500).send(err);
    }
    res.status(200).json(task);
  });
};
exports.listAllScowLogs=(请求、回复)=>{
ScowLog.find({},(err,task)=>{
如果(错误){
返回res.status(500)。发送(err);
}
res.status(200).json(任务);
});
};
exports.createNewScowLog=(请求、回复)=>{
让newScowLog=newScowLog(请求主体);
设scow=scowController.registerScowById(newScowLog.scow);
var ip=请求头[“x-转发-用于”];
如果(ip){
var list=ip.split(“,”);
ip=列表[列表长度-1];
}否则{
ip=请求连接远程地址;
}
newScowLog.ip=ip;
newScowLog.save((错误,任务)=>{
如果(错误){
返回res.status(500)。发送(err);
}
res.status(201).json({“status”:“Success”});
});
};
功能块(arr、len){
var chunks=[],
i=0,
n=阵列长度;
而(i{
var ip=请求头[“x-转发-用于”];
如果(ip){
var list=ip.split(“,”);
ip=列表[列表长度-1];
}否则{
ip=请求连接远程地址;
}
请求主体forEach((scw)=>{
scw.ip=ip;
});
让newlogs=chunk(req.body,400);
让承诺=[];
newlogs.forEach((日志)=>{
承诺。推送(新承诺((解决、拒绝)=>{
ScowLog.insertMany(日志,(错误)=>{
如果(错误){
退货拒绝(err);
}
否则{
返回决心(“成功”);
}
});
}));
});
承诺。所有(承诺)。然后((结果)=>{
返回res.status(201.json)({“status”:“Success”});
}).catch((错误)=>{
返回res.status(500)。发送(err);
});
};
exports.readScowLog=(请求、回复)=>{
ScowLog.findById(req.params.scowid,(err,task)=>{
如果(错误){
返回res.status(500)。发送(err);
}
res.status(200).json(任务);
});
};
exports.deleteScowLogsOlderThanOneWeek=(请求、回复)=>{
var lastweek=moment().add(-7,“天”);
remove({created:{“$lt”:lastweek}},(err,task)=>{
如果(错误){
返回res.status(500)。发送(err);
}
res.status(200).json(任务);
});
};
到目前为止,我正在做的是尽可能多地调试,我希望将问题重新限定在我上面报告的打印屏幕和评论上

发生了什么事?这就是问题所在吗?因此,解决办法就是擦除所有记录并清除所有内容


感谢您提供解决此问题的建议。

如果您认为数据库可能是问题所在,请检查数据库logs@Joe,感谢您阅读问题,我如何检查MongoDB上的日志?我也一直在试图了解是否有一个自由限制,超过这个限制一切都停止工作?@Joe,如果这很重要,我想知道这是否是问题所在?因此我想知道heroku是否会因此而拒绝请求?不确定heroku如何管理mongodb,如果他们对您的存储大小设置了上限,这可能是问题所在如果你认为数据库可能是问题所在,请检查数据库logs@Joe,感谢您阅读问题,我如何检查MongoDB上的日志?我也一直在试图了解是否有一个自由限制,超过这个限制一切都停止工作?@Joe,如果这很重要,我想知道这是否是问题所在?因此我想知道heroku是否会因此而拒绝请求?不确定heroku如何管理mongodb,如果他们对您的存储大小设置了上限,可能就是这样