monogdb中的错误" errmsg" :" WiredTigerIndex :: insert:键太大而无法索引,失败

时间:2017-04-11 09:34:09

标签: mongodb mongodb-query

我在mongo中创建了一个索引:

db.table.createIndex({"chr" : 1, "Start" : 1, "End" : 1, "Ref" : 1, "Alt" : 1}) 

它会运行一段时间并发出错误信息:

error in monogdb "errmsg" : "WiredTigerIndex::insert: key too large to index, failing

如何解决此错误?

2 个答案:

答案 0 :(得分:6)

在MongoDB中,从2.6开始,索引条目的总大小必须小于1024字节。 Documentation here

换句话说,至少有一个文档在您尝试索引的字段之一中具有较大的值。

一般来说,为这样的非常大的值编制索引并不是一个好主意,因为它会创建一个大的索引,与较小的索引相比效率较低,并且在RAM中占用更多空间可以更好地使用在MongoDB节点上。

你可以使用这个:mongod --setParameter failIndexKeyTooLong=false

但它看起来不是一个好主意。如果要索引大文本,则应考虑使用全文索引,或者可以使用哈希索引。

答案 1 :(得分:0)

这也可能是由同一字段同时包含文本索引和标准索引引起的。通过删除其中一个,您将能够解决此问题。