Python - Bases de données NoSQL

À mesure que de plus en plus de données deviennent disponibles sous forme non structurée ou semi-structurée, le besoin de les gérer via la base de données NoSql augmente. Python peut également interagir avec les bases de données NoSQL de la même manière qu'il interagit avec les bases de données relationnelles. Dans ce chapitre, nous utiliserons python pour interagir avec MongoDB en tant que base de données NoSQL. Si vous êtes nouveau sur MongoDB, vous pouvez l'apprendre dans notre tutoriel ici.

Afin de se connecter à MongoDB, python utilise une bibliothèque appelée pymongo. Vous pouvez ajouter cette bibliothèque à votre environnement python, en utilisant la commande ci-dessous à partir de l'environnement Anaconda.

conda install pymongo

Cette bibliothèque permet à python de se connecter à MOngoDB à l'aide d'un client db. Une fois connecté, nous sélectionnons le nom de la base de données à utiliser pour diverses opérations.

Insérer des données

Pour insérer des données dans MongoDB, nous utilisons la méthode insert () qui est disponible dans l'environnement de base de données. Nous nous connectons d'abord à la base de données à l'aide du code python ci-dessous, puis nous fournissons les détails du document sous la forme d'une série de paires clé-valeur.

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

Lorsque nous exécutons le code ci-dessus, cela produit le résultat suivant.

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

Mise à jour des données

La mise à jour d'une donnée MongoDB existante est similaire à l'insertion. Nous utilisons la méthode update () qui est native de mongoDB. Dans le code ci-dessous, nous remplaçons l'enregistrement existant par de nouvelles paires clé-valeur. Veuillez noter comment nous utilisons les critères de condition pour décider quel enregistrement mettre à jour.

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

Lorsque nous exécutons le code ci-dessus, cela produit le résultat suivant.

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

Suppression de données

La suppression d'un enregistrement est également simple lorsque nous utilisons la méthode de suppression. Ici aussi, nous mentionnons la condition qui est utilisée pour choisir l'enregistrement à supprimer.

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

Lorsque nous exécutons le code ci-dessus, cela produit le résultat suivant.

None

Nous voyons donc que l'enregistrement particulier n'existe plus dans la base de données.