java - mongodb中_id的长度有限制吗

标签 java mongodb

背景:正在接管一个应用程序(原工程师离开),它充当一些相对较慢的后端服务的缓存层。因为它是 RESTful 风格的 URL,所以每个 URL 都是唯一的。应用程序使用 MongoDb 作为缓存的存储,并使用哈希值作为缓存。虽然哈希码应该是相当独特的,但它不是唯一的。

问题:有人告诉我使用哈希码(而不是 url)的原因是因为 MongoDb 的 _id 字段有长度限制,但我找不到任何文档。我在 MongoDb 文档中只能找到“_id 字段可以是数组以外的任何内容,只要它是唯一的”。 MongoDb 的 _id 字段是否有长度限制?如果是,限制大小是多少?

应用程序是用 Java 编写的。哦,我是 MongoDb 的新手。

最佳答案

要索引的字段的长度有一个限制,即 1024 字节。这是对索引条目大小的限制,而不是限制在 ~16MB(完整文档的最大大小)的文档字段大小。

出于性能原因,您并不真正希望索引字段具有较大的字段值,因为与如此大的值进行比较的速度要慢得多。还要记住,每个索引都维护被索引的值的副本,因此它需要大量的内存。这反过来意味着更频繁的磁盘访问以在内存中交换虚拟内存页面,这再次对性能产生负面影响。

是的,限制为 800 字节。

关于java - mongodb中_id的长度有限制吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10224128/

相关文章:

java - 我可以使用 mime 类型 application/msword 将页码添加到动态生成的文档中吗?

java - 如何在 ActionListener 中拥有两个相关的操作?

java - Android 中带有 editText 的 AlertDialog

c# - 使用 Mongo C# 驱动程序识别成功的插入

javascript - 在 Node.js 中的异步函数中填充数组

java - 如何删除Android中按钮周围的填充?

java - ActionScript 和 Java EE 中静态变量的区别

python - 电机错误: callback is required

mongodb - Docker内部mongo中的shell命令无法进行身份验证

javascript - 使用promise模块连接mongodb时出错