在Mongo中,是否可以通过任何选择将字段设置为unique
,但不能将其设置为index
,因为每个索引都占用一些空间,并且每次插入都会产生开销,更新和删除,而且由于我很少使用此字段进行读取操作,因此,我只想限制唯一性,而不希望通过使用索引来获得任何性能提升。
答案 0 :(得分:1)
据我所知,没有办法也没有理由这样做。
是什么意思每次插入,更新和删除时的开销
那笔开销来自唯一的约束,而不是因为索引。
每个索引都占用一些空间
是的,当然,要在HDD或SSD中存储索引需要一些空间,但是只要您不执行read/query
,就不会影响其他操作的性能。
答案 1 :(得分:1)
或者,您可以在_id
字段中使用自定义值,即:
在Field Names部分:
保留字段名称_id用作主键;其值在集合中必须是唯一的,不可变的,并且可以是数组以外的任何其他类型。
如果在插入文档时未提供_id
字段,则MongoDB将使用ObjectId为您创建一个字段。
如果您的要求要求使用唯一约束,并且您不想创建额外的索引来强制唯一性,则只需使用_id
字段。