mongodb中的ensureIndex

Par*_*ris 3 mongodb

一些问题:

  1. 如果我已经索引的字段上的ensureIndex会重新索引,或者只是说是的,我已经索引了吗?
  2. 如果某个开发人员的机器上还没有该集合,mongo会启动索引吗?
  3. 我是否需要再次使用ensureIndex或者足够的时间调用它?
  4. 什么时候索引"安全"?它需要一些时间......在那段时间我的数据库被锁定了吗?

谢谢!

Joh*_*yHK 8

  1. 冗余调用ensureIndex是无操作.
  2. 如果ensureIndex调用中引用的集合不存在,则将创建它.
  3. 一次就够了.
  4. 除非您指定该background: true选项,否则创建索引会阻止其他数据库操作.

MongoDB 3.0更新

ensureIndex在v3.0中已弃用,现在是别名createIndex,因此createIndex应该使用它.行为保持不变.