使用MongoDB的Java中的createIndex()
和ensureIndex()
有什么区别?我用谷歌搜索,但没有得到满意的答案。
最佳答案
更新2:
原始答案以及第一次更新都错误地引用了Mongo Shell文档而不是Java API。
在Java中, DBCollection.ensureIndex()
在2.12版中已弃用,在3.0版中已删除。 DBCollection.createIndex()
是应该使用的一种。
更新:
从3.0.0版开始不推荐使用db.collection.ensureIndex()
。
现在是db.collection.createIndex()的别名。
原始:createIndex()
是deprecated since 1.8
它用于在集合上创建索引,而如果该索引尚不存在,则ensureIndex()
在指定的字段上创建索引。此外,当我们两次执行createIndex()
时,第二次执行只会使失败,而使用ensureIndex()
您可以多次调用它,并且不会失败ojit_rstrong
在先前版本的mongodb(版本小于2.6)中,关于ensureIndex()
的行为又发生了另一件事,如果现有文档的索引条目超过最大索引键长度,则会创建索引,但是Mongodb 不会索引这样的文档,而在最新版本中,不会创建索引。