2016-08-07 41 views
1

我有一個MongoDB集合。MongoDB異常:WiredTigerIndex :: insert:索引太大索引

我想改變索引,有一個雙重索引,而不是一個單一的索引。

所以我跑:

db.allnews.ensureIndex({ "url": 1, "source": 1 }, { unique: true }) 

但後來我得到的錯誤:

exception: WiredTigerIndex::insert: key too large to index 

與限制是1024字節

那麼該如何解決...?

(1)忽略它以某種方式..以某種方式跳過這些記錄太長,而不會停止整個過程..?

--setParameter failIndexKeyTooLong=false 

?? ??這可以做訣竅..?

(2)通過某種查詢查找過長的記錄,並縮短它們。

(3)其他..??

回答

2

好的,我解決了我的問題。

運行以下命令:

db.getSiblingDB('admin').runCommand({ setParameter: 1, failIndexKeyTooLong: false }) 

然後,你可以沒有它拋出一個錯誤

db.getCollection("allnews").ensureIndex({ "url": 1, "source": 1 }, { unique: true }) 
0

你的答案幫助我建立你的雙指數,而且我發現的情況下,另一種解決辦法,你不想要失去信息,你可以拆分領域由呂斯泰姆K在Cannot create index in mongodb, "key too large to index"

建議我希望這有助於另一種情況。

+0

您的'答案'目前的形式很難回答,請包括相關的代碼,並展開爲什麼它可以解決問題。 – milo526