以下是使用命令行从MongoDB数据库中的所有集合中删除所有索引的语法
db.getCollectionNames().forEach(function(yourVariableName) { db.runCommand({dropIndexes: yourVariableName, index: "*"}); });
上面的语法将删除除_id之外的所有索引。
让我们检查当前数据库。以下是查询
> db
这将产生以下输出
Test
以下是让我们在删除索引之前显示集合中一些索引的查询
> db.indexingDemo.getIndexes();
这将产生以下输出
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "test.indexingDemo" }, { "v" : 2, "key" : { "StudentFavouriteSubject" : 1 }, "name" : "StudentFavouriteSubject_1", "ns" : "test.indexingDemo", "background" : true } ]
以下是查询以删除MongoDB数据库中所有集合中的所有索引
> db.getCollectionNames().forEach(function(allCollectionName) { ... db.runCommand({dropIndexes: allCollectionName, index: "*"}); ... });
以下是检查索引是否已删除的查询
> db.indexingDemo.getIndexes();
这将产生以下输出
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "test.indexingDemo" } ]
查看上面的示例输出,索引已成功删除。