2012-12-24 31 views
3

我試圖刪除使用MongoDB的外殼文件,但由於某些原因,它不停地進行故障的「無效的對象ID:長度」MongoDB中移除對「無效的對象ID」失敗

查詢

db.collections.remove({ _id : ObjectId("FF125DF6-E977-404A-9E8C-600CDAFEFF53")}); 

錯誤

Mon Dec 24 03:11:15 Assertion: 10448:invalid object id: length 0x6073f1 0x5d1aa9 0x5ac3f1 0x5b84f4 0x6aa5ac 0x6aaec8 0x69e4e7 0x6aa13f 0x668e46 0x668ec2 0x66a2ce 0x5cbcc4 0x4a44a6 0x4a67e6 0x7f2554e2fcdd 0x49f669 mongo(_ZN5mongo15printStackTraceERSo+0x21) [0x6073f1] mongo(_ZN5mongo11msgassertedEiPKc+0x99) [0x5d1aa9] mongo() [0x5ac3f1] mongo(_ZN5mongo21object_id_constructorEP9JSContextP8JSObjectjPlS4_+0x2b4) [0x5b84f4] mongo(js_Invoke+0x40c) [0x6aa5ac] mongo(js_InvokeConstructor+0x108) [0x6aaec8] mongo(js_Interpret+0x37c7) [0x69e4e7] mongo(js_Execute+0x36f) [0x6aa13f] mongo(JS_EvaluateUCScriptForPrincipals+0x66) [0x668e46] mongo(JS_EvaluateUCScript+0x22) [0x668ec2] mongo(JS_EvaluateScript+0x6e) [0x66a2ce] mongo(_ZN5mongo7SMScope4execERKNS_10StringDataERKSsbbbi+0x144) [0x5cbcc4] mongo(_Z5_mainiPPc+0x2156) [0x4a44a6] mongo(main+0x26) [0x4a67e6] /lib64/libc.so.6(__libc_start_main+0xfd) [0x7f2554e2fcdd] mongo(__gxx_personality_v0+0x2a1) [0x49f669] Mon Dec 24 03:11:15 Error: invalid object id: length (shell):1

我試圖運行

db.repairDatabase(); 

但沒有任何變化。 檢查周圍我看到它的一個已知問題,有沒有解決這個問題?

編輯

這裏的文件,因爲它是在db:

{

"_id": "FF125DF6-E977-404A-9E8C-600CDAFEFF53",

"data": {

"files": [ 
    ], 

    "categories": [ 
    ], 

    "trash": [ 
    ] 
} 

}

謝謝!

回答

4

ObjectId("FF125DF6-E977-404A-9E8C-600CDAFEFF53")無效。 ObjectId是12字節的BSON類型,內部不能有' - '。檢查你得到這個ID的來源。

+0

我通過使用rockmongo導航數據庫得到了這個ID,我能做些什麼來得到正確的? – avital

+4

我認爲這是一個字符串id,而不是ObjectId。在刪除操作中嘗試{_id:「..........」}。 – coderLMN

+0

我試過db.collections.remove({_id:「FF125DF6-E977-404A-9E8C-600CDAFEFF53」})但文檔未被刪除 – avital