使用命令行从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"

   }

]

查看上面的示例输出,索引已成功删除。

以上是 使用命令行从MongoDB数据库中的所有集合中删除所有索引? 的全部内容, 来源链接: utcz.com/z/334732.html

回到顶部