MongoDB是否创建唯一字段但未索引?

MongoDB是否创建唯一字段但未索引?,mongodb,indexing,Mongodb,Indexing,在Mongo中是否有任何选项可以使字段成为唯一的,但不要对其进行索引,因为每个索引都会占用一些空间,并且会导致每次插入、更新和删除的开销,而且我很少将此字段用于读取操作,这就是为什么我只想限制唯一性,但不想通过使用索引获得任何性能提升。据我所知,没有办法也没有理由这样做。你这是什么意思 每次插入、更新和删除的开销 这种开销来自惟一约束,而不是索引 每个索引都占用一些空间 当然,在HDD或SSD中存储索引需要一些空间,但只要不执行读取/查询,就不会影响其他操作的性能 阅读更多信息:或者,您可以为\

在Mongo中是否有任何选项可以使字段成为唯一的,但不要对其进行索引,因为每个索引都会占用一些空间,并且会导致每次插入、更新和删除的开销,而且我很少将此字段用于读取操作,这就是为什么我只想限制唯一性,但不想通过使用索引获得任何性能提升。

据我所知,没有办法也没有理由这样做。你这是什么意思

每次插入、更新和删除的开销

这种开销来自惟一约束,而不是索引

每个索引都占用一些空间

当然,在HDD或SSD中存储索引需要一些空间,但只要不执行
读取/查询
,就不会影响其他操作的性能


阅读更多信息:

或者,您可以为
\u id
字段使用自定义值,即:

  • 要求在每份文件中出现
  • 需要在集合中具有唯一值
  • 默认索引
在本节中:

字段名_id保留用作主键;它的值在集合中必须是唯一的、不可变的,并且可以是数组以外的任何类型

如果在插入文档时未提供
\u id
字段,MongoDB将使用为您创建一个


如果您的需求要求使用唯一性约束,并且您不想创建额外的索引来强制唯一性,那么只需使用
\u id
字段。

因此,添加索引只会占用磁盘上的一些空间,或者也会将所有索引存储在内存中(减少main meory,这会使mongo变慢?)?它在插入/更新文档时是否有任何性能问题。@Sudhanshugur索引将加载到内存中,因为每次操作都需要检查唯一性,如果不在内存中,则速度会较慢。您希望MongoDB如何确保没有索引的字段唯一性?唯一的替代方法是对每个插入和更新操作执行完整的收集扫描,这将导致巨大的开销。