那麼,我正在修復一個擁有1億條記錄的MongoDB集合。以前的開發人員會用錯誤的東西覆蓋默認的_id。現在,當我修復它時,如何重新生成_id索引?除了mongoRestore,有沒有更快的方法?如何重新索引默認的Mongo索引?
這裏是我的更新過程:
1)從原來的DB花葯DB複製數據庫。
2)刪除所有記錄的_id。
3)再生_id所有記錄(這就是我不知道該怎麼做)
4)複製收集回原籍DB與新_id(或另一種方法是從做mongoDump新/臨時數據庫,然後將文件發送到原始數據庫,MongoRestore ie(然後每個記錄將有新的_id。這種方式將工作,但似乎更慢)。
爲什麼你認爲你必須重新生成? – 2012-07-17 21:28:29
呃..因爲_id被重寫了導致碰撞的重要哈希值。所以,我需要刪除舊的。然後用Mongo的默認方式恢復。 – murvinlai 2012-07-17 21:31:36
你如何恢復_id值?如果您正在閱讀每個文檔,然後更新_id,則不需要重建索引。如果您想恢復到備份中的值,您可以如何做到這一點取決於您的備份是如何進行的。 – 2012-07-17 22:09:52