Javascript MongoDB/MongoDB删除请求在本地工作,但在活动时删除数据库

Javascript MongoDB/MongoDB删除请求在本地工作,但在活动时删除数据库,javascript,node.js,mongodb,express,mlab,Javascript,Node.js,Mongodb,Express,Mlab,下面使用的是nodejs、expressjs、mongodb。在现场,它正在使用mongolab。我从前端向服务器发出POST请求,服务器通过从数据库中删除一条匹配记录来处理该请求。在ExpressJS中完成的服务器工作如下: var removeStuff = req.body.removeStuff; var currentId = req.user._id; var currentEmail = req.user.email; myStuff.findOne({ $and: [

下面使用的是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上运行它时,它非常适合该站点。但当它处于活动状态时,发出请求会从数据库中删除所有记录

好的,我知道了。我不确定为什么原作不起作用,但我发现有人回答了一个类似的问题。他们所做的工作大致如下:

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...");
});

这是不可能的,除非是猫鼬的虫子。必须有其他地方的代码是有问题的代码。您正在呼叫。删除对集合没有影响的文档。嗯,我一直在寻找bug…它在本地主机上运行得很好,所以可能是mongoose?我以前看到过类似的bug,但那是在2013年。remove calls collection.removeobj其中obj是您调用它的整个文档。所以唯一可能的匹配是它自己,因为它包含了它的id。看看它对调用本身做了什么,以及它用作匹配的解释。同时检查您正在使用的版本