Python - Bases de datos NoSQL

A medida que más y más datos están disponibles como no estructurados o semiestructurados, aumenta la necesidad de administrarlos a través de la base de datos NoSql. Python también puede interactuar con bases de datos NoSQL de manera similar a como interactúa con bases de datos relacionales. En este capítulo usaremos Python para interactuar con MongoDB como una base de datos NoSQL. En caso de que sea nuevo en MongoDB, puede aprenderlo en nuestro tutorial aquí.

Para conectarse a MongoDB, Python usa una biblioteca conocida como pymongo. Puede agregar esta biblioteca a su entorno de Python, usando el siguiente comando desde el entorno de Anaconda.

conda install pymongo

Esta biblioteca permite que Python se conecte a MOngoDB usando un cliente de base de datos. Una vez conectados seleccionamos el nombre de la base de datos que se utilizará para diversas operaciones.

Insertar datos

Para insertar datos en MongoDB usamos el método insert () que está disponible en el entorno de la base de datos. Primero nos conectamos a la base de datos usando el código Python que se muestra a continuación y luego proporcionamos los detalles del documento en forma de una serie de pares clave-valor.

# Import the python libraries
from pymongo import MongoClient
from pprint import pprint

# Choose the appropriate client
client = MongoClient()

# Connect to the test db 
db=client.test

# Use the employee collection
employee = db.employee
employee_details = {
    'Name': 'Raj Kumar',
    'Address': 'Sears Streer, NZ',
    'Age': '42'
}

# Use the insert method
result = employee.insert_one(employee_details)

# Query for the inserted document.
Queryresult = employee.find_one({'Age': '42'})
pprint(Queryresult)

Cuando ejecutamos el código anterior, produce el siguiente resultado.

{u'Address': u'Sears Streer, NZ',
 u'Age': u'42',
 u'Name': u'Raj Kumar',
 u'_id': ObjectId('5adc5a9f84e7cd3940399f93')}

Actualización de datos

Actualizar un dato MongoDB existente es similar a insertar. Usamos el método update () que es nativo de mongoDB. En el siguiente código, reemplazamos el registro existente con nuevos pares clave-valor. Tenga en cuenta cómo estamos utilizando los criterios de condición para decidir qué registro actualizar.

# Import the python libraries
from pymongo import MongoClient
from pprint import pprint

# Choose the appropriate client
client = MongoClient()

# Connect to db
db=client.test
employee = db.employee

# Use the condition to choose the record
# and use the update method
db.employee.update_one(
        {"Age":'42'},
        {
        "$set": {
            "Name":"Srinidhi",
            "Age":'35',
            "Address":"New Omsk, WC"
        }
        }
    )

Queryresult = employee.find_one({'Age':'35'})

pprint(Queryresult)

Cuando ejecutamos el código anterior, produce el siguiente resultado.

{u'Address': u'New Omsk, WC',
 u'Age': u'35',
 u'Name': u'Srinidhi',
 u'_id': ObjectId('5adc5a9f84e7cd3940399f93')}

Eliminar datos

Eliminar un registro también es sencillo cuando usamos el método de eliminación. Aquí también mencionamos la condición que se utiliza para elegir el registro a eliminar.

# Import the python libraries
from pymongo import MongoClient
from pprint import pprint

# Choose the appropriate client
client = MongoClient()

# Connect to db
db=client.test
employee = db.employee

# Use the condition to choose the record
# and use the delete method
db.employee.delete_one({"Age":'35'})

Queryresult = employee.find_one({'Age':'35'})

pprint(Queryresult)

Cuando ejecutamos el código anterior, produce el siguiente resultado.

None

Entonces vemos que el registro particular ya no existe en la base de datos.