2017-04-14 105 views
0

我正在嘗試做問題的標題。從一組對象中刪除單個項目。我正在嘗試使用_id (ObjectID)刪除特定對象。我已經寫下了這個查詢,因爲它可以在下面的代碼中看到:$pull: { 'ARRAY': {$elemMatch: {_id: idToRemove}}}。接下來會發生什麼可能會讓你震驚從陣列中的所有項目移除...

下面是從應用程序的NodeJS代碼發送查詢:

var findOne = { 'User.username': req.user.User.username }; var query = { $pull: { 'User.Polls': {$elemMatch: {_id: req.body.pollID}}}}; User.findOneAndUpdate(findOne, query, function (err, response) {//EVERYTHING GOT REMOVED});

這裏是mongod的結構photo]

回答

0

我的照片自己解決它。我使用的User.Polls._id沒有指向我所擁有的數組(Polls)。之後,我通過使用$ elemMatch選擇整個文檔來創建這個bug。通過刪除$ elemMatch我的問題得到解決。這是最後一個查詢$ pull:{'User.Polls':{_id:req.body.pollID}}