2013-08-22 90 views
0

嗨!即時通訊只是簡單地使用貓鼬從集合中刪除一個文件,但由於一些奇怪的原因,我無法讓它工作。使用貓鼬不能在mongodb上刪除?

下面是代碼:

function deleteUserevent() 
{console.log('in delete User Event'); 

    models.Userevent.remove({ _id: "5214f4050acb53fe31000004"}, function(err) { 
    if (!err){ 
      console.log('deleted user event!'); 
    } 
    else { 
      console.log('error'); 
    } 

}); 
} 

誰能幫我出我的語法?我知道_id存儲爲新的ObjectId(「5214f4050acb53fe31000004」),但我已經嘗試過沒有喜悅嗎?

謝謝。

+1

取而代之的是什麼?它打印「錯誤」還是打印出「刪除的用戶事件」而不刪除,或者什麼都不打印,或打印通話跟蹤? – Paul

回答

1

在MongoDB中,文檔的「_id」字段的類型爲ObjectId,如您所述。這不等於一個字符串,因此運行查詢

db.userevent.remove({ _id: "5214f4050acb53fe31000004"}); 

不會匹配任何內容,並且不會刪除任何內容。相反,你必須尋找一個文檔,其中的_id字段與該值的ObjectId:

db.userevents.remove({ _id: ObjectId("5214f4050acb53fe31000004")}); 

在貓鼬,你可以使用findByIdAndRemove命令刪除文件與特定_id。此命令可以使用ObjectId或String作爲參數,因此

query = Userevent.findByIdAndRemove("5214f4050acb53fe31000004"); 

應該可以正常工作。