MongoDB密钥是否有任何字符长度限制?如何限制按键深度。
例如db.namespace.key_depth1.key_depth2.key_depth3
...
我们可以拥有多少级钥匙?上面的串联键字符串的长度是否有限制?
其他键值数据库怎么样?
答案 0 :(得分:1)
MongoDB有一个专门介绍its limits and thresholds
的页面简而言之:
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})
除此之外,密钥长度似乎没有固定的限制。
答案 1 :(得分:0)
我已经达到了这个限制,但最终还是通过使用记录的确定性哈希来生成小于阈值的ID来解决这个问题。您可以根据需要浏览带有过滤器的BSON树。但这并不是一个理想的解决方案...