Python - bancos de dados NoSQL

À medida que mais e mais dados se tornam disponíveis como não estruturados ou semiestruturados, aumenta a necessidade de gerenciá-los por meio do banco de dados NoSql. Python também pode interagir com bancos de dados NoSQL de maneira semelhante à que interage com bancos de dados relacionais. Neste capítulo, usaremos o python para interagir com o MongoDB como um banco de dados NoSQL. Caso você seja novo no MongoDB, pode aprender em nosso tutorial aqui.

Para se conectar ao MongoDB, o python usa uma biblioteca conhecida como pymongo. Você pode adicionar esta biblioteca ao seu ambiente python, usando o comando abaixo do ambiente Anaconda.

conda install pymongo

Esta biblioteca permite que o python se conecte ao MOngoDB usando um cliente db. Uma vez conectado, selecionamos o nome do banco de dados a ser usado para várias operações.

Inserindo Dados

Para inserir dados no MongoDB, usamos o método insert () que está disponível no ambiente do banco de dados. Primeiro, conectamos ao banco de dados usando o código python mostrado abaixo e, em seguida, fornecemos os detalhes do documento na forma de uma série de pares de chave-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)

Quando executamos o código acima, ele produz o seguinte resultado.

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

Atualizando Dados

Atualizar um dado MongoDB existente é semelhante a inserir. Usamos o método update () que é nativo do mongoDB. No código a seguir, estamos substituindo o registro existente por novos pares de valores-chave. Observe como estamos usando os critérios de condição para decidir qual registro atualizar.

# 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)

Quando executamos o código acima, ele produz o seguinte resultado.

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

Excluindo Dados

Excluir um registro também é direto, quando usamos o método delete. Aqui também mencionamos a condição que é usada para escolher o registro a ser excluído.

# 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)

Quando executamos o código acima, ele produz o seguinte resultado.

None

Portanto, vemos que o registro específico não existe mais no banco de dados.