我在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
如何解决此错误?
答案 0 :(得分:6)
在MongoDB中,从2.6开始,索引条目的总大小必须小于1024字节。 Documentation here
换句话说,至少有一个文档在您尝试索引的字段之一中具有较大的值。
一般来说,为这样的非常大的值编制索引并不是一个好主意,因为它会创建一个大的索引,与较小的索引相比效率较低,并且在RAM中占用更多空间可以更好地使用在MongoDB节点上。
你可以使用这个:mongod --setParameter failIndexKeyTooLong=false
。
但它看起来不是一个好主意。如果要索引大文本,则应考虑使用全文索引,或者可以使用哈希索引。
答案 1 :(得分:0)
这也可能是由同一字段同时包含文本索引和标准索引引起的。通过删除其中一个,您将能够解决此问题。