Python - Database NoSQL

Man mano che sempre più dati diventano disponibili come non strutturati o semi-strutturati, aumenta la necessità di gestirli attraverso il database NoSql. Python può anche interagire con i database NoSQL in modo simile a come interagisce con i database relazionali. In questo capitolo useremo python per interagire con MongoDB come database NoSQL. Se non conosci MongoDB, puoi impararlo nel nostro tutorial qui.

Per connettersi a MongoDB, python utilizza una libreria nota come pymongo. Puoi aggiungere questa libreria al tuo ambiente python, utilizzando il comando seguente dall'ambiente Anaconda.

conda install pymongo

Questa libreria consente a python di connettersi a MOngoDB utilizzando un client db. Una volta connessi selezioniamo il nome del db da utilizzare per le varie operazioni.

Inserimento di dati

Per inserire dati in MongoDB utilizziamo il metodo insert () disponibile nell'ambiente database. Per prima cosa ci colleghiamo al db usando il codice python mostrato di seguito e poi forniamo i dettagli del documento sotto forma di una serie di coppie chiave-valore.

# 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 eseguiamo il codice precedente, produce il seguente risultato.

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

Aggiornamento dei dati

L'aggiornamento di un dato MongoDB esistente è simile all'inserimento. Usiamo il metodo update () che è nativo di mongoDB. Nel codice seguente stiamo sostituendo il record esistente con nuove coppie chiave-valore. Si prega di notare come utilizziamo i criteri delle condizioni per decidere quale record aggiornare.

# 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 eseguiamo il codice precedente, produce il seguente risultato.

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

Eliminazione dei dati

Anche l'eliminazione di un record è semplice quando utilizziamo il metodo di eliminazione. Anche qui citiamo la condizione che viene utilizzata per scegliere il record da eliminare.

# 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 eseguiamo il codice precedente, produce il seguente risultato.

None

Quindi vediamo che il record particolare non esiste più nel db.