MongoDB es una base de datos multiplataforma orientada a documentos que funciona con el concepto de colecciones y documentos. Almacena datos en forma de pares clave-valor y es un programa de base de datos NoSQL. El término NoSQL significa no relacional. Consulte MongoDB y Python para obtener una introducción detallada al tema. Ahora comprendamos el uso de rename()
la función en PyMongo.
rebautizar()
La función PyMongo rename()
se utiliza para cambiar el nombre de una colección. La operación de cambio de nombre falla si el nuevo nombre no es una instancia de basestring o si es un nombre de colección no válido.
Sintaxis: renombrar (nuevo_nombre, sesión = Ninguno, **kwargs)
Parámetros:
- new_name : El nuevo nombre de la colección.
- session : (Opcional) una ClientSession.
- **kwargs: (opcional) se pueden pasar argumentos adicionales al comando de cambio de nombre como argumentos de palabra clave a este método auxiliar (es decir, dropTarget = True).
Ejemplo 1: en este ejemplo crearemos una colección y le cambiaremos el nombre. La rename()
función cambiará el nombre de la colección de colección a colección. El valor de dropTarget
se establece en True, lo que significa que si existiera una colección existente, la nueva colección sobrescribiría los datos de la colección existente.
# 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)
Producción-
collec
Ejemplo 2: en este ejemplo, el dropTarget
parámetro se establece en False, el nuevo nombre de colección ingresado debe ser único. Pero dado que el nombre de la colección collec ya existe en la base de datos, devolverá un error.
# 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)
Producción :
pymongo.errors.OperationFailure: target namespace exists
Publicación traducida automáticamente
Artículo escrito por gauravbabbar25 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA