Mongodb如何使用长字符串键插入

Mongodb如何使用长字符串键插入,mongodb,mongodb-query,database,nosql,Mongodb,Mongodb Query,Database,Nosql,在我的情况下,我需要url是唯一的索引,但有些url可能非常大,超过了mongodb的最大键长度,因此返回错误 WriteResult({ "nInserted" : 0, "writeError" : { "code" : 17280, "errmsg" : "insertDocument :: caused by :: 17280 Btree::insert: key too large to index, failing test.temp.

在我的情况下,我需要url是唯一的索引,但有些url可能非常大,超过了mongodb的最大键长度,因此返回错误

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存储为唯一索引的方法?

扩展Stalls评论,您可以使用抗冲突哈希函数(sha-256)来存储url的哈希,这样您可以保证它具有固定长度,并且具有很高的唯一性概率(我记得,如果您发现两个不同的键映射到同一个值,您可以赢得一些东西)


如果您真的需要存储url,请将它们放在一个单独的(非索引字段)中。另一个建议是尝试使用而不是普通索引(现在无法尝试,因此请告诉它是如何进行的)

您可以将url的哈希存储为键,将url本身存储为值。哈希具有固定长度。冲突将极为罕见。