MongoDB上的密钥名称长度有限制吗



MongoDB密钥有字符长度限制吗?对按键深度的限制如何。

例如db.namespace.key_depth1.key_depth2.key_depth3。。。我们可以有多少级别的密钥?上面连接的关键字字符串的长度有限制吗?其他键值数据库怎么样?

MongoDB有一个很棒的页面专门介绍其限制和阈值

简而言之:

limit for the database name:
64 characters
limit for the database name + collection name (<database>.<collection>):
120 characters (including the dot separator)
(This is the closest answer to your question, since it limits the amount of keys)
nesting limit:
100

因此,由于您的问题是关于密钥的长度,因此会有所不同。如果您能够满足数据库和集合名称的120个字符限制,那么唯一的限制就是嵌套。Mongo只支持100嵌套层,这意味着它只支持请求检索不超过100层的嵌套密钥的查询。我不认为查询本身是有限的,但由于数据库不支持超过100个级别,所以查询没有意义。

因此,如果你的数据库名称很短,比如app,那么你的集合名称限制是116个字符,所以查询可能看起来像这样:

db.<116 characters>.find({'1.2.3.4.5.6.7.8.(and so on until).100': true})

除此之外,密钥长度似乎没有固定的限制。

我已经达到了这个极限,但最终通过使用记录的确定性哈希生成小于阈值的ID来绕过它。如果需要,您可以浏览带有查询过滤器的BSON树。不过,这并不是一个理想的解决方案。。。

最新更新