MongoDB / MongoLab 删除请求在本地有效,但在实时删除数据库
MongoDB / MongoLab Remove request works locally but deletes database when live
以下使用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
上时,这对网站来说是完美的。但是当它处于活动状态时,发出请求会从数据库中删除 ALL 记录。
好的,我知道了。我不确定为什么原来的问题不起作用,但我发现在 this Whosebug question 中有人回答了类似的问题。他们所做的是:
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...");
});
以下使用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
上时,这对网站来说是完美的。但是当它处于活动状态时,发出请求会从数据库中删除 ALL 记录。
好的,我知道了。我不确定为什么原来的问题不起作用,但我发现在 this Whosebug question 中有人回答了类似的问题。他们所做的是:
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...");
});