使用命令行工具,如何从 MongoDB 数据库中的所有集合中删除所有索引?
以下是使用命令行从 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" } ]
查看以上样本输出,已成功删除索引。
广告