Python MongoDB- renombrar()

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 dropTargetse 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 dropTargetpará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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *