Hướng dẫn dùng mongodb charts python

Tiếp tục series lập trình Python 3, hôm nay vinasupport sẽ hướng dẫn các bận cách kết nối tới CSDL MongoDB bằng Python 3.

Các bài viết nên tham khảo trước:

  • MongoDB là gì? Hướng dẫn cài đặt MongoDB trên Ubuntu
  • Python là gì? Hướng dẫn viết chương trình sử dụng Python
  • Hướng dẫn sử dụng pip để cài đặt và quản lý Module của Python

Cài đặt thư viện MongoDB Driver

Đầu tiên để kết nối tới cơ sở dữ liệu MongoDB chúng ta cần cài đặt thư viện MongoDB Driver có tên là pymongo, để cài đặt pymongo chúng ta sử dụng lệnh pip3 đối với Python 3 và pip nếu sử dụng Python 2.

pip3 install pymongo

Kết nối đến MongoDB bằng Python 3

Trên MongoDB, mình đã tạo sẵn 1 database là vinasupport

Hướng dẫn dùng mongodb charts python

Đoạn code Python 3 thực hiện kết nối và hiển thị danh sách database trên MongoDB

#!/usr/bin/env python3 from pymongo import MongoClient import pprint # Connect to mongodb client = MongoClient('192.168.2.10', 27017) # get database db = client.vinasupport # Show database stats pprint.pprint(db.command('dbstats'))

Đoạn code trên sử dụng class MongoClient được import từ thư viện pymongo, kết nối tới CSDL MongoDB ở địa chỉ 192.168.2.10 trên công 27017 (Cổng mặc định)

Kết quả:

Nguồn: vinasupport.com

Trong hướng dẫn Python của chúng tôi , chúng tôi đã nghiên cứu Quyền truy cập cơ sở dữ liệu Python. Ở đây, trong hướng dẫn NoSQL DB Python này, chúng ta sẽ nghiên cứu hoạt động của NoSQL DB trong Ngôn ngữ lập trình Python. Ngoài ra, chúng ta sẽ thảo luận về nhu cầu và lợi ích của Cơ sở dữ liệu Python NoSQL. Cùng với phần này sẽ nghiên cứu các loại NoSQL khác nhau và các chức năng khác nhau như cách chèn vào, cập nhật và xóa dữ liệu từ NoSQL DB. Chúng tôi sẽ sử dụng MongoDB cho việc này. Cuối cùng, chúng tôi sẽ đề cập đến NoSQL và SQL.

Các bài viết liên quan:

Vì vậy, hãy bắt đầu NoSQL DB bằng Python.

  • NoSQL DB là gì?
  • Cần cho NoSQL DB bằng Python
  • Các loại cơ sở dữ liệu với NoSQL
  • Lợi ích của việc sử dụng NoSQL DB
  • NoSQL và SQL
  • Cài đặt Điều kiện tiên quyết của NoSQL DB bằng Python
  • Các hoạt động được thực hiện trong NoSQL DB bằng Python
  • Insert record
  • Kết luận

NoSQL DB là gì?

Trước khi bắt đầu NoSQL DB bằng Python, chúng ta hãy tìm hiểu về NoSQL.

NoSQL mở rộng thành “ Không là SQL ”. Nó cho chúng ta một cách để lưu trữ và truy xuất dữ liệu mà chúng ta có thể lập mô hình ở các dạng khác với dạng quan hệ (bảng). NoSQL DB phần lớn được sử dụng trong các ứng dụng liên quan đến dữ liệu lớn và sử dụng thời gian thực. Lý do chúng tôi gọi chúng là “Không là SQL” là vì chúng có thể hỗ trợ các ngôn ngữ truy vấn giống SQL. Chúng ta có thể sử dụng NoSQL để lưu trữ dữ liệu ở các dạng như khóa-giá trị, tài liệu, cột và đồ thị. Khi làm việc với các bộ dữ liệu phân tán lớn, chúng tôi sử dụng NoSQL.

Xem thêm Kiểm tra lỗ hổng bảo mật SQL injection trong NoSql

Cần cho NoSQL DB bằng Python

Vì vậy, tại sao chúng ta cần NoSQL?

  • Thay vì các máy chủ nguyên khối lớn và cơ sở hạ tầng lưu trữ, các tổ chức hiện sử dụng điện toán đám mây, phần mềm nguồn mở và máy chủ hàng hóa.
  • Các dự án hiện áp dụng phương pháp tiếp cận nhanh thay vì truyền thống thác nước dài (Agility).
  • Cần phải làm việc với khối lượng lớn dữ liệu thường xuyên thay đổi kiểu. Các loại này bao gồm dữ liệu phi cấu trúc, bán cấu trúc, có cấu trúc và đa hình.
  • Quy mô khán giả đã tăng theo cấp số nhân trong những năm qua (Khả năng mở rộng).

Các loại cơ sở dữ liệu với NoSQL

Như chúng ta đã thảo luận trước đây, chúng ta có bốn loại dữ liệu khác nhau mà chúng ta có thể lập mô hình với NoSQL DB bằng Python-

Hướng dẫn dùng mongodb charts python

Cơ sở dữ liệu document

Trong cơ sở dữ liệu tài liệu, mỗi khóa ghép nối với một tài liệu. Tài liệu là một cấu trúc dữ liệu phức tạp và có thể chứa bất kỳ cặp khóa-giá trị, cặp khóa-mảng, tài liệu lồng nhau nào sau đây. Những dữ liệu này lưu trữ dữ liệu bán cấu trúc.

Chúng tôi sử dụng chúng cho các ứng dụng như quản lý nội dung và xử lý dữ liệu ứng dụng di động.

Cơ sở dữ liệu Graph

Kho lưu trữ đồ thị chứa kiến ​​thức về mạng dữ liệu. Một trong những mạng như vậy là kết nối xã hội. Trong một cửa hàng đồ thị, một nút giống như một bản ghi trong cơ sở dữ liệu quan hệ và một cạnh giống như một kết nối giữa các nút. Điều này cho phép nó thể hiện các mối quan hệ dữ liệu tốt hơn. Chúng tôi sử dụng chúng cho các ứng dụng như CRM và hệ thống đặt chỗ. Một số ví dụ là Neo4J và Giraph.

Cơ sở dữ liệu key-value

Kho khóa-giá trị giữ các cặp khóa-giá trị trong cấu trúc của nó. Đây là NoSQL DB đơn giản nhất. Chúng tôi sử dụng chúng trong các ứng dụng như quản lý phiên và bộ nhớ đệm trong các ứng dụng web. Một số ví dụ bao gồm Riak, Redis và Berkeley DB.

Cơ sở dữ liệu wide-column

Khi chúng ta muốn lưu trữ các cột cùng hoạt động với các truy vấn trên tập dữ liệu lớn, chúng ta có thể sử dụng các wide-column. Chúng tôi cũng tìm thấy chúng trong cơ sở dữ liệu SQL và chúng truy vấn khối lượng lớn nhanh hơn. Một số ví dụ là Cassandra , HBase và Google BigTable. Đọc về pháp y Python – Hàm băm, ảo hóa

Xem thêm SQL injection attack là gì?

Lợi ích của việc sử dụng NoSQL DB

Đây là những ưu điểm sau của NoSQL DB bằng Python, hãy thảo luận từng cái một:

  1. Lập trình hướng đối tượng dễ dàng và linh hoạt.
  2. Khối lượng lớn dữ liệu thay đổi nhanh chóng- phi cấu trúc, có cấu trúc hoặc bán cấu trúc.
  3. Quy mô kiến ​​trúc được phân bố theo địa lý.
  4. Chạy nước rút nhanh, đẩy mã thường xuyên, lặp lại lược đồ nhanh chóng.

NoSQL và SQL

Vậy, hai cái này khác nhau như thế nào? Hãy xem nào.

  • Các lược đồ thường là động cho NoSQL nhưng cố định cho SQL.
  • NoSQL có thể có nhiều loại cơ sở dữ liệu khác nhau, như đã thảo luận, nhưng SQL chỉ có một.
  • NoSQL xuất hiện vào cuối những năm 2000, SQL đã có mặt ở đây từ những năm 1970.
  • Đối với SQL, mô hình lưu trữ dữ liệu là các bản ghi riêng lẻ, nhưng đối với NoSQL, điều này phụ thuộc vào loại cơ sở dữ liệu.
  • NoSQL có quy mô theo chiều ngang; SQL có dọc.
  • Đối với NoSQL, phát triển là mã nguồn mở; đối với SQL, nó là sự kết hợp của mã nguồn mở và mã nguồn đóng.
  • NoSQL DB được sử dụng xác định hỗ trợ cho các giao dịch ACID; SQL hỗ trợ các giao dịch ACID.
  • Ví dụ về NoSQL DB là MongoDB, Cassandra , Neo4J và HBase ; Những thứ dành cho cơ sở dữ liệu SQL là MySQL, Oracle, Microsoft SQL Server và Postgres.

Xem thêm Kiểm tra lỗ hổng bảo mật SQL Injection

Cài đặt Điều kiện tiên quyết của NoSQL DB bằng Python

Trong hướng dẫn Cơ sở dữ liệu Python NoSQL này, chúng tôi sử dụng thư viện pymongo. Đây là trình điều khiển chính thức được xuất bản bởi các nhà phát triển Mongo. Bạn có thể cài đặt nó theo cách này:

Phần này cài đặt phiên bản 3.7.0, là phiên bản mới nhất của pymongo tại thời điểm viết bài viết này.

Bạn cũng sẽ cần cài đặt cơ sở dữ liệu MongoDB .

Các hoạt động được thực hiện trong NoSQL DB bằng Python

Hướng dẫn dùng mongodb charts python

Xem thêm Kiểm tra lỗ hổng bảo mật SQL injection Client-side

Insert record

Để chèn dữ liệu vào NoSQL DB trong Python 3, chúng tôi sử dụng phương thức insert (). Đây là mã chúng tôi sử dụng trong dấu nhắc lệnh (Bạn cũng có thể chạy một tập lệnh hoặc chỉ cần sử dụng trình thông dịch):

from pymongo import MongoClient # khai báo thư viện pymongo
from pprint import pprint # sử dụng thư viện pprint
client=MongoClient() #tạo đối tượng client
db=client.test #kết nối đến database
student=db.student 
student_record={ # tạo record sinh viên
'Name':'Ayushi Sharma',
'Enrolment':'0875CS191003',
'Age':'22'}
result=student.insert_one(student_record) # insert record vào database
pprint(student.find_one({'Age':'22'})) # show ra một sinh viên có tuổi 22

Update record

Bây giờ để cập nhật dữ liệu này, chúng tôi sử dụng phương thức update ().

from pymongo import MongoClient# khai báo thư viện pymongo
from pprint import pprint # sử dụng thư viện pprint
client=MongoClient() #Choose client
db=client.test #kết nối đến database
student=db.student
db.student.update_one({'Age':'22'},
{'$set': {'Name':'Name update', # cập nhật name =Name update
'Enrolment':'0875CS191003',
'Age':'23'}}) #Choosing the record to update
pprint(student.find_one({'Age':'23'})

Delete record

Bây giờ để xóa bản ghi này, chúng ta có thể sử dụng phương thức delete ().

from pymongo import MongoClient# khai báo thư viện pymongo
from pprint import pprint# sử dụng thư viện pprint
client=MongoClient() #Choose client
db=client.test #kết nối đến DB
student=db.student 
db.student.delete_one({'Age':'23'})# xóa một object có age = 23
pprint(student.find_one({'Age':'23'})

Ở đây, Python in Không có vì nó không thể tìm thấy bản ghi đó trong cơ sở dữ liệu.

Vì vậy, đây là tất cả về NoSQL DB bằng Python. Hy vọng bạn thích giải thích của chúng tôi.

Kết luận

Do đó, điều này giúp bạn bắt đầu với những điều cơ bản của việc sử dụng NoSQL DB bằng Python bằng PyMongo. Để lại thắc mắc của bạn trong phần bình luận bên dưới.

Xem thêm Phương pháp tấn công Blind SQL Injection