2016-08-07 16 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

OK、私は私の問題を解決しました。

このラン:

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

次に、あなたはそれが

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

エラーをスローせずに、あなたの二重のインデックスを作成することができますが、あなたの答えは私を助けるだけでなく、私はあなたがいない場合は、別の解決策を見つけました情報を失いたくて、あなたはRustem Kが提案したフィールドを分割することができますCannot create index in mongodb, "key too large to index"

私はこれが別のシナリオで役立つことを願っています。

+0

現在のフォームの「回答」はほとんど答えにはなりません。関連するコードを含めて問題が解決する理由を説明してください。 – milo526

関連する問題