Mongodb如何用长字符串键插入

时间:2014-10-03 06:56:51

标签: mongodb mongodb-query database nosql

在我的情况下,我需要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存储为唯一索引的东西吗?

1 个答案:

答案 0 :(得分:2)

扩展stalks注释,你可以使用抗冲突哈希函数(sha-256)来存储你网址的哈希,这样你就可以保证它有固定的长度,也很有可能是唯一的(我记得你如果你会发现2个不同的键映射到相同的值,可以赢得一些东西。)

如果你真的需要存储url - 将它们放在一个单独的(非索引字段)中。另一个建议是尝试使用hashed index而不是正常索引(现在不能尝试,所以请告诉它如何)