📜  Python MongoDB-重命名()

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

Python MongoDB-重命名()

MongoDB 是一个跨平台、面向文档的数据库,它基于集合和文档的概念。它以键值对的形式存储数据,是一个 NoSQL 数据库程序。 NoSQL 一词的意思是非关系型的。有关该主题的深入介绍,请参阅 MongoDB 和Python 。现在让我们了解一下 PyMongo 中rename()函数的使用。

改名()

PyMongo函数rename()用于重命名集合。如果新名称不是 basestring 的实例或者它是无效的集合名称,则重命名操作将失败。

示例 1:在此示例中,我们将创建一个集合并重命名它。 rename()函数会将集合名称从 collection 重命名为 colec。 dropTarget的值设置为 True,这意味着如果现有的 collection collec 存在,那么新的 collection 将覆盖现有 collection 的数据。

# importing the module
from pymongo import MongoClient
  
# creating a MongoClient object 
client = MongoClient() 
    
# connecting with the portnumber and host 
client = MongoClient("mongodb://localhost:27017/") 
  
# accessing the database 
database = client['database']   
  
# access collection of the database 
collection = database['myTable'] 
docs = [{"id":1, "name":"Drew"},
        {"id":3, "name":"Cody"}]
collection.insert_many(docs)
  
# renaming the collection
collection.rename('collec', dropTarget = True)
  
result = database.collection_names()
for collect in result:
    print(collect)

输出-

collec

示例 2:在此示例中, dropTarget参数设置为 False,输入的新集合名称应该是唯一的。但是由于数据库中已经存在集合名colec,所以会返回错误。

# importing the module
from pymongo import MongoClient
  
# creating a MongoClient object 
client = MongoClient() 
    
# connecting with the portnumber and host 
client = MongoClient("mongodb://localhost:27017/") 
  
# accessing the database 
database = client['database'] 
    
# access collection of the database 
mycollection = database['myTable'] 
docs = [{"id":1, "name":"Drew"},
        {"id":3, "name":"Cody"}]
mycollection.insert_many(docs)
  
# renaming the collection
mycollection.rename('collec', dropTarget = False)
  
result = database.collection_names()
for collect in result:
    print(collect)

输出 :

pymongo.errors.OperationFailure: target namespace exists