0
以下是使用nodejs
,expressjs
, mongodb
。在現場,它使用mongolab
。我正在從前端向服務器發送POST
請求,服務器通過從數據庫中刪除匹配記錄的單個來處理請求。服務器的工作(在ExpressJS
進行如下:MongoDB/MongoLab刪除請求在本地工作但在生存時刪除數據庫
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。記錄來自數據庫
這是不可能的,除非它是貓鼬的錯誤。在其他地方必須有代碼,這是有問題的代碼。您在文檔上調用了'.remove()',這對集合沒有影響。 – cdbajorin
嗯,我一直在尋找各種各樣的bug ......它再次在localhost上運行,所以也許它可能與貓鼬?我發現以前有這樣的錯誤,但它在2013年https://github.com/Automattic/mongoose/issues/1649 – maudulus
'.remove()'調用'collection.remove(obj)'where obj '是你打電話給它的整個文件。所以唯一可能的匹配是它自己(因爲它包含它的id)。看看它的作用[這裏](https://github.com/Automattic/mongoose/blob/master/lib/model.js#L637-L686),並在[這裏](https:/ /github.com/Automattic/mongoose/blob/master/lib/model.js#L585-L609)來解釋它作爲匹配的用途。 (檢查你正在使用的版本) – cdbajorin