【发布时间】:2015-05-15 19:54:18
【问题描述】:
我使用以下方法在我的数据库上创建了一个复合索引:
db.collection.ensureIndex({a:1,b:1})
现在我意识到我需要在作文中达到另一个层次:
db.collection.ensureIndex({a:1,b:1,c:1})
Mongodb 会创建一个全新的索引,还是会知道修改现有的索引?
【问题讨论】:
我使用以下方法在我的数据库上创建了一个复合索引:
db.collection.ensureIndex({a:1,b:1})
现在我意识到我需要在作文中达到另一个层次:
db.collection.ensureIndex({a:1,b:1,c:1})
Mongodb 会创建一个全新的索引,还是会知道修改现有的索引?
【问题讨论】:
使用不同字段调用ensureIndex 将创建一个新索引。
您可以在运行这两个命令后使用getIndexes 来确认这一点,以查看您的集合存在哪些索引:
db.collection.getIndexes()
如果您不再需要原始索引,可以使用以下命令删除它:
db.collection.dropIndex({a:1,b:1})
【讨论】:
{a:1,b:1,c:1} 的行为就像{a:1,b:1}(除了支持c),因为mongo will use index prefixes。