Python - bazy danych NoSQL

W miarę jak coraz więcej danych jest dostępnych jako nieustrukturyzowane lub częściowo ustrukturyzowane, rośnie potrzeba zarządzania nimi przez bazę danych NoSql. Python może również współdziałać z bazami danych NoSQL w podobny sposób, jak współdziała z relacyjnymi bazami danych. W tym rozdziale użyjemy Pythona do interakcji z MongoDB jako bazą danych NoSQL. Jeśli jesteś nowy w MongoDB, możesz się tego nauczyć w naszym samouczku tutaj.

Aby połączyć się z MongoDB, python używa biblioteki znanej jako pymongo. Możesz dodać tę bibliotekę do swojego środowiska Pythona, używając poniższego polecenia ze środowiska Anaconda.

conda install pymongo

Ta biblioteka umożliwia Pythonowi łączenie się z bazą danych MOngoDB przy użyciu klienta db. Po nawiązaniu połączenia wybieramy nazwę bazy danych, która ma być używana do różnych operacji.

Wstawianie danych

Aby wstawić dane do MongoDB używamy metody insert (), która jest dostępna w środowisku bazy danych. Najpierw łączymy się z bazą danych za pomocą kodu Pythona pokazanego poniżej, a następnie podajemy szczegóły dokumentu w postaci serii par klucz-wartość.

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

Kiedy wykonujemy powyższy kod, daje on następujący wynik.

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

Aktualizacja danych

Aktualizowanie istniejących danych MongoDB jest podobne do wstawiania. Używamy metody update (), która jest natywna dla mongoDB. W poniższym kodzie zastępujemy istniejący rekord nowymi parami klucz-wartość. Zwróć uwagę, jak używamy kryteriów warunku, aby zdecydować, który rekord zaktualizować.

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

Kiedy wykonujemy powyższy kod, daje on następujący wynik.

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

Usuwanie danych

Usunięcie rekordu jest również proste, gdy używamy metody usuwania. Tutaj również wspominamy o warunku, który służy do wyboru rekordu do usunięcia.

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

Kiedy wykonujemy powyższy kod, daje on następujący wynik.

None

Widzimy więc, że dany rekord już nie istnieje w bazie danych.