MongoDB建立索引的dropDups参数的注意事项
在项目中看到了类似如下的代码段:
1 | @Entity |
这里的unique
属性可以理解,是建立唯一索引,那dropDups
这个属性呢?
查看其代码:
1 | /** |
结合Create a Unique Index — MongoDB Manual 2.6文档可以知道,在建立索引时,如果现有的数据有不符合唯一索引的,如果只指定unique
属性,则会提示建立索引失败,而如果还额外指定了dropDups
属性,则会只会保留第一条数据,其他的不符合唯一索引的数据都会被删除。
但是我在实验的时候,发现无论是否指定dropDups
,都会提示建立索引失败,这是为什么?
参考:
- Unique Indexes — MongoDB Manual 3.4
- mongodb - mongo 3 duplicates on unique index - dropDups - Stack Overflow
原来在Mongo 2.7.5之后,dropDups
字段就已经不建议使用了,所以如果你想要在一个已经有不符合你要建立的唯一索引的集合上创建索引,需要自己额外处理了。
参考资料
如果觉得文章对你有帮助,就打赏杯咖啡钱呗😊