📜  如何使用 PyMongo 删除集合中的所有索引?

📅  最后修改于: 2022-05-13 01:54:21.122000             🧑  作者: Mango

如何使用 PyMongo 删除集合中的所有索引?

先决条件: MongoDB 和Python

借助drop_indexes()方法,我们可以删除集合中的所有索引。方法中不传递任何参数。只有默认索引_id不能删除。所有的非 _id 索引都会被这个方法丢弃。这意味着我们只能删除我们创建的索引。

句法:

db.collection_name.drop_indexes()

使用的示例数据库:

python-mongodb-sample-database5

默认情况下,每个集合都有 _id 索引。所有集合都必须至少有一个索引。如果删除所有索引,则将自动生成一个新索引。我们可以通过运行以下命令查看存在的索引:

python-mongodb-drop-all-indexes-1

现在,假设 mongo 服务器正在运行,我们可以运行以下代码向集合中添加一个名为 newIndex 的新索引:

示例 1:向集合添加索引

import pprint 
import pymongo 
    
# connection 
try: 
    client = pymongo.MongoClient() 
    db = client['GFG'] 
    print('connection to the server established') 
        
except Exception: 
    print('Failed to Connect to server') 
  
collection = db.lecture 
  
# creating an index 
resp = collection.create_index("l_id") 
    
# printing the auto generated name  
# returned by MongoDB 
print(resp) 
    
# index_information() is analogous  
# to getIndexes 
pprint.pprint(collection.index_information()) 

输出:

python-mongodb-drop-all-indexes-2

示例 2:从集合中删除索引

import pprint 
import pymongo 
  
    
try: 
    client = pymongo.MongoClient() 
    db = client['GFG'] 
    print('connection to the server established') 
  
except Exception: 
    print('Failed to Connect to server') 
  
collection = db.lecture 
    
# dropping the index using autogenerated 
# name from MongoDB 
collection.drop_indexes() 
    
# printing the indexes present on the collection 
pprint.pprint(collection.index_information()) 

输出:

python-mongodb-drop-all-indexes-3