在我的情况下,我需要url是一个唯一的索引,但是一些url可能非常大,超过mongodb max key length,因此返回错误,
WriteResult({
"nInserted" : 0,
"writeError" : {
"code" : 17280,
"errmsg" : "insertDocument :: caused by :: 17280 Btree::insert: key too large to index, failing test.temp.$_id_ 2953 { : \"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii...\" }"
}
})
有什么办法/替代方法/技巧/任何我可以将url存储为唯一索引的东西吗?
答案 0 :(得分:2)
扩展stalks注释,你可以使用抗冲突哈希函数(sha-256)来存储你网址的哈希,这样你就可以保证它有固定的长度,也很有可能是唯一的(我记得你如果你会发现2个不同的键映射到相同的值,可以赢得一些东西。)
如果你真的需要存储url - 将它们放在一个单独的(非索引字段)中。另一个建议是尝试使用hashed index而不是正常索引(现在不能尝试,所以请告诉它如何)