Python MongoDB-重命名()
MongoDB 是一个跨平台、面向文档的数据库,它基于集合和文档的概念。它以键值对的形式存储数据,是一个 NoSQL 数据库程序。 NoSQL 一词的意思是非关系型的。有关该主题的深入介绍,请参阅 MongoDB 和Python 。现在让我们了解一下 PyMongo 中rename()
函数的使用。
改名()
PyMongo函数rename()
用于重命名集合。如果新名称不是 basestring 的实例或者它是无效的集合名称,则重命名操作将失败。
Syntax : rename(new_name, session = None, **kwargs)
Parameters :
- new_name : The new name of the collection.
- session : (Optional) a ClientSession.
- **kwargs : (Optional) additional arguments to the rename command may be passed as keyword arguments to this helper method (i.e. dropTarget = True).
示例 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