Python - Cơ sở dữ liệu NoSQL

Khi ngày càng có nhiều dữ liệu có sẵn dưới dạng phi cấu trúc hoặc bán cấu trúc, nhu cầu quản lý chúng thông qua cơ sở dữ liệu NoSql ngày càng tăng. Python cũng có thể tương tác với cơ sở dữ liệu NoSQL theo cách tương tự như tương tác với cơ sở dữ liệu quan hệ. Trong chương này, chúng ta sẽ sử dụng python để tương tác với MongoDB dưới dạng cơ sở dữ liệu NoSQL. Trong trường hợp bạn chưa quen với MongoDB, bạn có thể tìm hiểu nó trong hướng dẫn của chúng tôi tại đây.

Để kết nối với MongoDB, python sử dụng một thư viện được gọi là pymongo. Bạn có thể thêm thư viện này vào môi trường python của mình bằng cách sử dụng lệnh dưới đây từ môi trường Anaconda.

conda install pymongo

Thư viện này cho phép python kết nối với MOngoDB bằng ứng dụng khách db. Sau khi kết nối, chúng tôi chọn tên db sẽ được sử dụng cho các hoạt động khác nhau.

Chèn dữ liệu

Để chèn dữ liệu vào MongoDB, chúng ta sử dụng phương thức insert () có sẵn trong môi trường cơ sở dữ liệu. Đầu tiên, chúng tôi kết nối với db bằng cách sử dụng mã python được hiển thị bên dưới và sau đó chúng tôi cung cấp chi tiết tài liệu dưới dạng một loạt các cặp khóa-giá trị.

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

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả như sau.

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

Cập nhật dữ liệu

Cập nhật dữ liệu MongoDB hiện có tương tự như việc chèn. Chúng tôi sử dụng phương thức update () có nguồn gốc từ mongoDB. Trong đoạn mã dưới đây, chúng tôi sẽ thay thế bản ghi hiện có bằng các cặp khóa-giá trị mới. Vui lòng lưu ý cách chúng tôi đang sử dụng tiêu chí điều kiện để quyết định bản ghi nào cần cập nhật.

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

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả như sau.

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

Xóa dữ liệu

Việc xóa bản ghi cũng được thực hiện ngay khi chúng tôi sử dụng phương pháp xóa. Ở đây chúng tôi cũng đề cập đến điều kiện được sử dụng để chọn bản ghi sẽ bị xóa.

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

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả như sau.

None

Vì vậy, chúng tôi thấy bản ghi cụ thể không tồn tại trong db nữa.