MongoDB / mongab Remove请求在本地工作,但在现场时删除数据库

MongoDB / MongoLab Remove request works locally but deletes database when live

本文关键字:现场 数据库 删除 工作 mongab Remove 请求 MongoDB      更新时间:2023-09-26

下面以nodejs, expressjs, mongodb为例。在现场使用的是mongolab。我正在从前端向服务器发出POST请求,服务器通过从数据库中删除单个匹配记录来处理请求。服务器工作(在ExpressJS中完成)如下:

var removeStuff = req.body.removeStuff;
var currentId = req.user._id;
var currentEmail = req.user.email;
myStuff.findOne({
  $and: [
      { $or: [{stuff: removeStuff}] },
      { $or: [{apid:currentId},{apiemail:currentEmail}] }
  ]
}, function (err, currentStuff) {
  currentStuff.remove();
  res.send('Stuff was removed from database...')
});

真正奇怪的是,当我在localhost上运行这个网站时,它可以完美地工作。但是当它运行时,发出请求将从数据库中删除所有记录。

好的,我知道了。我不确定为什么原来的不工作,但我发现在这个StackOverflow问题有人回答了一个类似的问题。他们所做的是:

var removeStuff = req.body.removeStuff;
var currentId = req.user._id;
var currentEmail = req.user.email;
myStuff.findOneAndRemove({
  $and: [
      { $or: [{stuff: removeStuff}] },
      { $or: [{apid:currentId},{apiemail:currentEmail}] }
  ]
}, function (err) {
  res.status(200).send("it worked...");
});