MongoDB có thể được sử dụng miễn phí không?

MongoDB là một giải pháp cơ sở dữ liệu NoSQL và định hướng tài liệu, cung cấp khả năng mở rộng và tính linh hoạt tuyệt vời cùng với một hệ thống truy vấn mạnh mẽ. Với MongoDB và Python, bạn có thể phát triển nhiều loại ứng dụng cơ sở dữ liệu khác nhau một cách nhanh chóng. Vì vậy, nếu ứng dụng Python của bạn cần một cơ sở dữ liệu linh hoạt như chính ngôn ngữ đó, thì MongoDB là dành cho bạn

Trong hướng dẫn này, bạn sẽ học

  • MongoDB là gì
  • Cách cài đặt và chạy MongoDB
  • Cách làm việc với cơ sở dữ liệu MongoDB
  • Cách sử dụng trình điều khiển PyMongo cấp thấp để giao tiếp với MongoDB
  • Cách sử dụng trình ánh xạ tài liệu đối tượng MongoEngine cấp cao (ODM)

Xuyên suốt hướng dẫn này, bạn sẽ viết một vài ví dụ thể hiện tính linh hoạt và sức mạnh của MongoDB cũng như khả năng hỗ trợ Python tuyệt vời của nó. Để tải xuống mã nguồn cho những ví dụ đó, hãy nhấp vào liên kết bên dưới

Lấy mã nguồn. Nhấp vào đây để lấy mã nguồn mà bạn sẽ sử dụng để tìm hiểu về cách sử dụng MongoDB với Python trong hướng dẫn này

Sử dụng cơ sở dữ liệu SQL vs NoSQL

Trong nhiều thập kỷ, cơ sở dữ liệu SQL là một trong những lựa chọn duy nhất cho các nhà phát triển muốn xây dựng hệ thống cơ sở dữ liệu lớn và có thể mở rộng. Tuy nhiên, nhu cầu lưu trữ cấu trúc dữ liệu phức tạp ngày càng tăng đã dẫn đến sự ra đời của cơ sở dữ liệu NoSQL. Loại hệ thống cơ sở dữ liệu mới này cho phép các nhà phát triển lưu trữ dữ liệu không đồng nhất và không có cấu trúc một cách hiệu quả

Nói chung, các hệ thống cơ sở dữ liệu NoSQL lưu trữ và truy xuất dữ liệu theo cách khác nhiều so với các hệ thống quản lý cơ sở dữ liệu quan hệ SQL (RDBMS)

Khi nói đến việc lựa chọn từ các công nghệ cơ sở dữ liệu hiện có, bạn có thể cần quyết định giữa việc sử dụng hệ thống SQL hay NoSQL. Cả hai đều có các tính năng cụ thể mà bạn nên cân nhắc khi chọn cái này hay cái kia. Dưới đây là một số khác biệt đáng kể hơn của họ

Cơ sở dữ liệu thuộc tínhSQLCơ sở dữ liệu NoSQLMô hình dữ liệuRelationalNonrelationalStructureDựa trên bảng, với các cột và hàngDựa trên tài liệu, các cặp khóa-giá trị, biểu đồ hoặc cột rộngSchemaMột lược đồ nghiêm ngặt và được xác định trước, trong đó mọi bản ghi (hàng) đều có cùng bản chất và sở hữu cùng các thuộc tínhMột lược đồ động hoặc không có lược đồ

Có nhiều sự khác biệt khác giữa hai loại cơ sở dữ liệu, nhưng những điều được đề cập ở trên là một số điều quan trọng hơn cần biết về

Khi chọn một cơ sở dữ liệu, bạn nên cân nhắc kỹ điểm mạnh và điểm yếu của nó. Bạn cũng cần xem xét cách cơ sở dữ liệu phù hợp với kịch bản cụ thể và yêu cầu của ứng dụng của bạn. Đôi khi, giải pháp phù hợp là sử dụng kết hợp cơ sở dữ liệu SQL và NoSQL để xử lý các khía cạnh khác nhau của một hệ thống rộng lớn hơn

Một số ví dụ phổ biến về cơ sở dữ liệu SQL bao gồm

  • SQLite
  • mysql
  • tiên tri
  • PostgreSQL
  • Máy chủ Microsoft SQL

Các ví dụ về cơ sở dữ liệu NoSQL bao gồm

  • DynamoDB
  • Cassandra
  • làm lại
  • Đi văngDB
  • Suy nghĩ lại về DB
  • RavenDB
  • MongoDB

Trong những năm gần đây, cơ sở dữ liệu SQL và NoSQL thậm chí đã bắt đầu hợp nhất. Ví dụ: các hệ thống cơ sở dữ liệu, chẳng hạn như PostgreSQL, MySQL và Microsoft SQL Server hiện hỗ trợ lưu trữ và truy vấn dữ liệu JSON, giống như cơ sở dữ liệu NoSQL. Với điều này, giờ đây bạn có thể đạt được nhiều kết quả giống nhau với cả hai công nghệ. Nhưng bạn vẫn không nhận được nhiều tính năng của NoSQL, chẳng hạn như mở rộng theo chiều ngang và giao diện thân thiện với người dùng

Với nền tảng ngắn gọn này về cơ sở dữ liệu SQL và NoSQL, bạn có thể tập trung vào chủ đề chính của hướng dẫn này. cơ sở dữ liệu MongoDB và cách sử dụng nó trong Python

Loại bỏ các quảng cáo

Quản lý cơ sở dữ liệu NoSQL với MongoDB

MongoDB là một cơ sở dữ liệu hướng tài liệu được phân loại là NoSQL. Nó đã trở nên phổ biến trong toàn ngành trong những năm gần đây và tích hợp cực kỳ tốt với Python. Không giống như các RDBMS SQL truyền thống, MongoDB sử dụng các tập tài liệu thay vì các bảng hàng để tổ chức và lưu trữ dữ liệu

MongoDB lưu trữ dữ liệu trong các tài liệu giống như JSON linh hoạt và không có lược đồ. Ở đây, không lược đồ có nghĩa là bạn có thể có các tài liệu với một tập hợp các trường khác nhau trong cùng một bộ sưu tập mà không cần phải đáp ứng một lược đồ bảng cứng nhắc

Bạn có thể thay đổi cấu trúc tài liệu và dữ liệu của mình theo thời gian, điều này dẫn đến một hệ thống linh hoạt cho phép bạn nhanh chóng thích ứng với các thay đổi yêu cầu mà không cần quá trình di chuyển dữ liệu phức tạp. Tuy nhiên, sự đánh đổi trong việc thay đổi cấu trúc của các tài liệu mới là các tài liệu thoát trở nên không phù hợp với lược đồ được cập nhật. Vì vậy, đây là một chủ đề cần được quản lý cẩn thận

Ghi chú. JSON là viết tắt của Ký hiệu đối tượng JavaScript. Đó là một định dạng tệp có cấu trúc mà con người có thể đọc được bao gồm các cặp khóa-giá trị có thể được lồng sâu tùy ý

MongoDB được viết bằng C++ và được MongoDB Inc tích cực phát triển. Nó chạy trên tất cả các nền tảng chính, chẳng hạn như macOS, Windows, Solaris và hầu hết các bản phân phối Linux. Nói chung, có ba mục tiêu phát triển chính đằng sau cơ sở dữ liệu MongoDB

  1. quy mô tốt
  2. Lưu trữ cấu trúc dữ liệu phong phú
  3. Cung cấp một cơ chế truy vấn phức tạp

MongoDB là một cơ sở dữ liệu phân tán, do đó tính sẵn sàng cao, mở rộng theo chiều ngang và phân phối địa lý được tích hợp vào hệ thống. Nó lưu trữ dữ liệu trong các tài liệu giống như JSON linh hoạt. Bạn có thể lập mô hình các tài liệu này để ánh xạ các đối tượng trong ứng dụng của mình, điều này giúp bạn có thể làm việc với dữ liệu của mình một cách hiệu quả

MongoDB cung cấp một ngôn ngữ truy vấn mạnh mẽ hỗ trợ các truy vấn đặc biệt, lập chỉ mục, tổng hợp, tìm kiếm không gian địa lý, tìm kiếm văn bản, v.v. Điều này mang đến cho bạn một bộ công cụ mạnh mẽ để truy cập và làm việc với dữ liệu của bạn. Cuối cùng, MongoDB có sẵn miễn phí và hỗ trợ Python tuyệt vời

Xem xét các tính năng của MongoDB

Đến đây, bạn đã biết MongoDB là gì và mục tiêu chính của nó là gì. Trong phần này, bạn sẽ tìm hiểu về một số tính năng quan trọng hơn của MongoDB. Đối với phía quản lý cơ sở dữ liệu, MongoDB cung cấp các tính năng sau

  • hỗ trợ truy vấn. Bạn có thể sử dụng nhiều loại truy vấn tiêu chuẩn, chẳng hạn như khớp (______02), so sánh (
    > show dbs
    admin          0.000GB
    config         0.000GB
    local          0.000GB
    >
    
    3,
    > show dbs
    admin          0.000GB
    config         0.000GB
    local          0.000GB
    >
    
    4) và biểu thức chính quy
  • chỗ ở dữ liệu. Bạn có thể lưu trữ hầu như bất kỳ loại dữ liệu nào, có cấu trúc, có cấu trúc một phần hoặc thậm chí là đa hình
  • khả năng mở rộng. Nó xử lý nhiều truy vấn hơn chỉ bằng cách thêm nhiều máy hơn vào cụm máy chủ
  • Tính linh hoạt và nhanh nhẹn. Bạn có thể phát triển các ứng dụng với nó một cách nhanh chóng
  • Định hướng tài liệu và lược đồ. Bạn có thể lưu trữ tất cả thông tin liên quan đến mô hình dữ liệu trong một tài liệu
  • lược đồ điều chỉnh. Bạn có thể thay đổi lược đồ của cơ sở dữ liệu một cách nhanh chóng, giúp giảm thời gian cần thiết để cung cấp các tính năng mới hoặc khắc phục các sự cố hiện có
  • Chức năng cơ sở dữ liệu quan hệ. Bạn có thể thực hiện các hành động phổ biến đối với cơ sở dữ liệu quan hệ, như lập chỉ mục

Về phía hoạt động, MongoDB cung cấp một số công cụ và tính năng mà bạn sẽ không tìm thấy trong các hệ thống cơ sở dữ liệu khác

  • khả năng mở rộng. Cho dù bạn cần một máy chủ độc lập hay cụm máy chủ độc lập hoàn chỉnh, bạn có thể mở rộng MongoDB thành bất kỳ kích thước nào bạn cần.
  • Hỗ trợ cân bằng tải. MongoDB sẽ tự động di chuyển dữ liệu qua nhiều phân đoạn khác nhau
  • Hỗ trợ chuyển đổi dự phòng tự động. Nếu máy chủ chính của bạn gặp sự cố, thì một máy chủ chính mới sẽ tự động hoạt động
  • công cụ quản lý. Bạn có thể theo dõi các máy của mình bằng Dịch vụ quản lý MongoDB (MMS) dựa trên đám mây
  • hiệu quả bộ nhớ. Nhờ các tệp ánh xạ bộ nhớ, MongoDB thường hiệu quả hơn cơ sở dữ liệu quan hệ

Tất cả các tính năng này khá hữu ích. Ví dụ: nếu bạn tận dụng tính năng lập chỉ mục, thì phần lớn dữ liệu của bạn sẽ được lưu trong bộ nhớ để truy xuất nhanh. Ngay cả khi không lập chỉ mục các khóa tài liệu cụ thể, MongoDB lưu trữ khá nhiều dữ liệu bằng kỹ thuật ít được sử dụng gần đây nhất

Cài đặt và chạy MongoDB

Bây giờ bạn đã quen thuộc với MongoDB, đã đến lúc bắt đầu sử dụng nó. Nhưng trước tiên, bạn cần cài đặt nó trên máy của mình. Trang web chính thức của MongoDB cung cấp hai phiên bản của máy chủ cơ sở dữ liệu

  1. Phiên bản cộng đồng cung cấp mô hình tài liệu linh hoạt cùng với các truy vấn đặc biệt, lập chỉ mục và tổng hợp thời gian thực để cung cấp các cách mạnh mẽ để truy cập và phân tích dữ liệu của bạn. Phiên bản này được cung cấp miễn phí
  2. Phiên bản doanh nghiệp cung cấp các tính năng giống như phiên bản cộng đồng, cộng với các tính năng nâng cao khác liên quan đến bảo mật và giám sát. Đây là phiên bản thương mại, nhưng bạn có thể sử dụng nó miễn phí trong thời gian không giới hạn cho mục đích đánh giá và phát triển

Nếu bạn đang dùng Windows, thì bạn có thể đọc qua hướng dẫn cài đặt để biết hướng dẫn đầy đủ. Nói chung, bạn có thể truy cập trang tải xuống, chọn nền tảng Windows trong hộp Tải xuống có sẵn, chọn trình cài đặt

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
5 phù hợp với hệ thống hiện tại của bạn và nhấp vào Tải xuống

Chạy trình cài đặt và làm theo hướng dẫn trên màn hình trong trình hướng dẫn cài đặt. Trang này cũng cung cấp thông tin về cách chạy MongoDB dưới dạng dịch vụ Windows

Nếu bạn đang dùng macOS, thì bạn có thể sử dụng Homebrew để cài đặt MongoDB trên hệ thống của mình. Xem hướng dẫn cài đặt để có hướng dẫn đầy đủ. Ngoài ra, hãy đảm bảo làm theo hướng dẫn để chạy MongoDB dưới dạng dịch vụ macOS

Nếu bạn đang dùng Linux, thì quá trình cài đặt sẽ phụ thuộc vào bản phân phối cụ thể của bạn. Để có hướng dẫn chi tiết về cách cài đặt MongoDB trên các hệ thống Linux khác nhau, hãy truy cập trang hướng dẫn cài đặt và chọn hướng dẫn phù hợp với hệ điều hành hiện tại của bạn. Đảm bảo rằng bạn chạy trình nền MongoDB,

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
6, khi kết thúc quá trình cài đặt

Cuối cùng, bạn cũng có thể cài đặt MongoDB bằng Docker. Điều này rất hữu ích nếu bạn không muốn làm lộn xộn hệ thống của mình bằng một cài đặt khác. Nếu bạn thích tùy chọn cài đặt này, thì bạn có thể đọc qua hướng dẫn chính thức và làm theo hướng dẫn của nó. Lưu ý rằng kiến ​​thức trước đây về cách sử dụng Docker sẽ được yêu cầu trong trường hợp này

Với cơ sở dữ liệu MongoDB được cài đặt và chạy trên hệ thống của bạn, bạn có thể bắt đầu làm việc với cơ sở dữ liệu thực bằng trình bao

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
7

Loại bỏ các quảng cáo

Tạo cơ sở dữ liệu MongoDB với Shell > show dbs admin 0.000GB config 0.000GB local 0.000GB > 7

Nếu bạn đã làm theo hướng dẫn cài đặt và chạy, thì bạn đã có một phiên bản MongoDB đang chạy trên hệ thống của mình. Bây giờ bạn có thể bắt đầu tạo và thử nghiệm cơ sở dữ liệu của riêng mình. Trong phần này, bạn sẽ học cách sử dụng shell

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
7 để tạo, đọc, cập nhật và xóa tài liệu trên cơ sở dữ liệu

Chạy vỏ > show dbs admin 0.000GB config 0.000GB local 0.000GB > 7

Shell

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
7 là giao diện JavaScript tương tác với MongoDB. Bạn có thể sử dụng công cụ này để truy vấn và thao tác dữ liệu của mình cũng như thực hiện các thao tác quản trị. Vì là giao diện JavaScript nên bạn sẽ không sử dụng ngôn ngữ SQL quen thuộc để truy vấn cơ sở dữ liệu. Thay vào đó, bạn sẽ sử dụng mã JavaScript

Để khởi chạy trình bao

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
7, hãy mở thiết bị đầu cuối hoặc dòng lệnh của bạn và chạy lệnh sau

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
1

Lệnh này đưa bạn đến trình bao

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
7. Tại thời điểm này, có thể bạn sẽ thấy một loạt thông báo có thông tin về phiên bản shell, địa chỉ máy chủ và cổng. Cuối cùng, bạn sẽ thấy dấu nhắc trình bao (
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
4) để nhập truy vấn và lệnh

Bạn có thể chuyển địa chỉ cơ sở dữ liệu làm đối số cho lệnh

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
7. Bạn cũng có thể sử dụng một số tùy chọn, chẳng hạn như chỉ định máy chủ và cổng để truy cập cơ sở dữ liệu từ xa, v.v. Để biết thêm chi tiết về cách sử dụng lệnh
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
7, bạn có thể chạy
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
67

Thiết lập kết nối

Khi bạn chạy lệnh

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
7 mà không có đối số, nó sẽ khởi chạy trình bao và kết nối với máy chủ cục bộ mặc định được cung cấp bởi quy trình
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
6 tại
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
90. Điều này có nghĩa là bạn đã kết nối với máy chủ cục bộ thông qua cổng
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
91

Theo mặc định, trình bao

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
7 bắt đầu phiên bằng cách thiết lập kết nối với cơ sở dữ liệu
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
93. Bạn có thể truy cập cơ sở dữ liệu hiện tại thông qua đối tượng
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
94

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
4

Trong trường hợp này,

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
94 giữ một tham chiếu đến
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
93, là cơ sở dữ liệu mặc định. Để chuyển đổi cơ sở dữ liệu, hãy ra lệnh
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
97, cung cấp tên cơ sở dữ liệu làm đối số

Ví dụ: giả sử bạn muốn tạo một trang web để xuất bản nội dung Python và bạn dự định sử dụng MongoDB để lưu trữ các hướng dẫn và bài viết của mình. Trong trường hợp đó, bạn có thể chuyển sang cơ sở dữ liệu của trang web bằng lệnh sau

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
8

Lệnh này chuyển kết nối của bạn sang cơ sở dữ liệu

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
98. MongoDB không tạo tệp cơ sở dữ liệu vật lý trên hệ thống tệp cho đến khi bạn chèn dữ liệu thực vào cơ sở dữ liệu. Vì vậy, trong trường hợp này,
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
98 sẽ không hiển thị trong danh sách cơ sở dữ liệu hiện tại của bạn

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>

Shell

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
7 cung cấp rất nhiều tính năng và tùy chọn. Nó cho phép bạn truy vấn và thao tác dữ liệu của mình cũng như quản lý chính máy chủ cơ sở dữ liệu

Thay vì sử dụng ngôn ngữ truy vấn được tiêu chuẩn hóa như SQL, trình bao

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
7 sử dụng ngôn ngữ lập trình JavaScript và API thân thiện với người dùng. API này cho phép bạn thử nghiệm với dữ liệu của mình, đây là chủ đề cho phần tiếp theo

Tạo Bộ sưu tập và Tài liệu

Cơ sở dữ liệu MongoDB là một thùng chứa vật lý cho các bộ sưu tập tài liệu. Mỗi cơ sở dữ liệu có tập hợp tệp riêng trên hệ thống tệp. Các tệp này được quản lý bởi máy chủ MongoDB, có thể xử lý một số cơ sở dữ liệu

Trong MongoDB, một bộ sưu tập là một nhóm các tài liệu. Các bộ sưu tập hơi giống với các bảng trong RDBMS truyền thống, nhưng không áp đặt một lược đồ cứng nhắc. Về lý thuyết, mỗi tài liệu trong một bộ sưu tập có thể có cấu trúc hoặc tập hợp các trường hoàn toàn khác nhau

Trong thực tế, các tài liệu trong một bộ sưu tập thường chia sẻ một cấu trúc tương tự để cho phép các quy trình truy xuất, chèn và cập nhật thống nhất. Bạn có thể thực thi cấu trúc tài liệu thống nhất bằng cách sử dụng các quy tắc xác thực tài liệu trong quá trình cập nhật và chèn

Cho phép các cấu trúc tài liệu khác nhau là một tính năng chính của bộ sưu tập MongoDB. Tính năng này cung cấp tính linh hoạt và cho phép thêm các trường mới vào tài liệu mà không cần sửa đổi lược đồ bảng chính thức

Để tạo một bộ sưu tập bằng shell

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
7, bạn cần trỏ
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
94 vào cơ sở dữ liệu đích của mình, sau đó tạo các bộ sưu tập bằng cách sử dụng ký hiệu dấu chấm

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
6

Trong ví dụ này, bạn sử dụng ký hiệu dấu chấm để tạo

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
74 dưới dạng một bộ sưu tập trong
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
98, đây là cơ sở dữ liệu hiện tại của bạn. Điều quan trọng cần lưu ý là MongoDB tạo cơ sở dữ liệu và bộ sưu tập một cách lười biếng. Nói cách khác, chúng chỉ được tạo ra sau khi bạn chèn tài liệu đầu tiên

Khi bạn có cơ sở dữ liệu và bộ sưu tập, bạn có thể bắt đầu chèn tài liệu. Tài liệu là đơn vị lưu trữ trong MongoDB. Trong một RDBMS, điều này sẽ tương đương với một hàng của bảng. Tuy nhiên, các tài liệu của MongoDB linh hoạt hơn nhiều so với các hàng vì chúng có thể lưu trữ thông tin phức tạp, chẳng hạn như mảng, tài liệu nhúng và thậm chí cả mảng tài liệu

MongoDB lưu trữ các tài liệu ở định dạng được gọi là JSON nhị phân (BSON), là biểu diễn nhị phân của JSON. Các tài liệu của MongoDB bao gồm các cặp trường và giá trị và có cấu trúc như sau

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
9

Giá trị của một trường có thể là bất kỳ kiểu dữ liệu BSON nào, bao gồm các tài liệu, mảng và mảng tài liệu khác. Trong thực tế, bạn sẽ chỉ định tài liệu của mình bằng định dạng JSON

Khi bạn đang xây dựng một ứng dụng cơ sở dữ liệu MongoDB, có lẽ quyết định quan trọng nhất của bạn là về cấu trúc của tài liệu. Nói cách khác, bạn sẽ phải quyết định những trường và giá trị nào mà tài liệu của bạn sẽ có.

Trong trường hợp hướng dẫn cho trang web Python của bạn, tài liệu của bạn có thể được cấu trúc như thế này

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
7

Một tài liệu về cơ bản là một tập hợp các tên thuộc tính và giá trị của chúng. Các giá trị có thể là các kiểu dữ liệu đơn giản, chẳng hạn như chuỗi và số, nhưng chúng cũng có thể là các mảng, chẳng hạn như

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
76 trong ví dụ trên

Mô hình dữ liệu hướng tài liệu của MongoDB thể hiện tự nhiên dữ liệu phức tạp dưới dạng một đối tượng. Điều này cho phép bạn làm việc với các đối tượng dữ liệu một cách tổng thể mà không cần phải xem xét nhiều vị trí hoặc bảng

Nếu bạn đang sử dụng RDBMS truyền thống để lưu trữ các hướng dẫn của mình thì có thể bạn sẽ có một bảng để lưu trữ các hướng dẫn của mình và một bảng khác để lưu trữ những người đóng góp cho bạn. Sau đó, bạn phải thiết lập mối quan hệ giữa cả hai bảng để có thể truy xuất dữ liệu sau này

Loại bỏ các quảng cáo

Làm việc với Bộ sưu tập và Tài liệu

Đến đây, bạn đã biết những kiến ​​thức cơ bản về cách chạy và sử dụng shell

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
7. Bạn cũng biết cách tạo tài liệu của riêng mình bằng định dạng JSON. Bây giờ là lúc tìm hiểu cách chèn tài liệu vào cơ sở dữ liệu MongoDB của bạn

Để chèn tài liệu vào cơ sở dữ liệu bằng trình bao

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
7, trước tiên bạn cần chọn một bộ sưu tập và sau đó gọi
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
79 trên bộ sưu tập với tài liệu của bạn làm đối số

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
5

Với lệnh đầu tiên, bạn chuyển sang cơ sở dữ liệu mà bạn muốn sử dụng. Lệnh thứ hai là một lệnh gọi phương thức JavaScript để chèn một tài liệu đơn giản vào bộ sưu tập đã chọn,

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
74. Khi bạn nhấn Enter , bạn sẽ nhận được một thông báo trên màn hình cho bạn biết về tài liệu mới được chèn và
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
51 của nó.

Giống như cơ sở dữ liệu quan hệ cần khóa chính để xác định duy nhất mỗi hàng trong bảng, tài liệu MongoDB cần có trường

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
52 xác định duy nhất tài liệu. MongoDB cho phép bạn nhập một
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
52 tùy chỉnh miễn là bạn đảm bảo tính duy nhất của nó. Tuy nhiên, một phương pháp được chấp nhận rộng rãi là cho phép MongoDB tự động chèn một
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
52 cho bạn

Tương tự, bạn có thể thêm nhiều tài liệu cùng một lúc bằng cách sử dụng

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
55

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
2

Tại đây, lệnh gọi tới

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
55 lấy danh sách các hướng dẫn và chèn chúng vào cơ sở dữ liệu. Một lần nữa, đầu ra của trình bao hiển thị thông tin về các tài liệu mới được chèn và các trường
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
52 được thêm tự động của chúng

Shell

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
7 cũng cung cấp các phương thức để thực hiện các thao tác đọc, cập nhật và xóa trên cơ sở dữ liệu. Ví dụ: bạn có thể sử dụng
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
59 để truy xuất tài liệu trong bộ sưu tập

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
7

Cuộc gọi đầu tiên đến

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
59 lấy tất cả các tài liệu trong bộ sưu tập
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
74. Mặt khác, cuộc gọi thứ hai tới
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
59 truy xuất những hướng dẫn được tác giả bởi Joanna

Với kiến ​​thức cơ bản này về cách sử dụng MongoDB thông qua shell

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
7 của nó, bạn đã sẵn sàng bắt đầu sử dụng MongoDB với Python. Một vài phần tiếp theo sẽ hướng dẫn bạn các tùy chọn khác nhau để sử dụng cơ sở dữ liệu MongoDB trong các ứng dụng Python của bạn

Sử dụng MongoDB với Python và PyMongo

Bây giờ bạn đã biết MongoDB là gì và cách tạo và quản lý cơ sở dữ liệu bằng trình bao

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
7, bạn có thể bắt đầu sử dụng MongoDB, nhưng lần này là với Python. MongoDB cung cấp trình điều khiển Python chính thức có tên là PyMongo

Trong phần này, bạn sẽ xem qua một số ví dụ giúp bạn hiểu cách sử dụng PyMongo để tạo các ứng dụng cơ sở dữ liệu của riêng bạn với MongoDB và Python

Mỗi mô-đun trong PyMongo chịu trách nhiệm cho một tập hợp các hoạt động trên cơ sở dữ liệu. Bạn sẽ có các mô-đun cho ít nhất các tác vụ sau

  • Thiết lập kết nối cơ sở dữ liệu
  • Làm việc với cơ sở dữ liệu
  • Làm việc với các bộ sưu tập và tài liệu
  • Thao tác với con trỏ
  • Làm việc với mã hóa dữ liệu

Nói chung, PyMongo cung cấp một bộ công cụ phong phú mà bạn có thể sử dụng để giao tiếp với máy chủ MongoDB. Nó cung cấp chức năng truy vấn, truy xuất kết quả, ghi và xóa dữ liệu cũng như chạy các lệnh cơ sở dữ liệu

Cài đặt PyMongo

Để bắt đầu sử dụng PyMongo, trước tiên bạn cần cài đặt nó trong môi trường Python của mình. Bạn có thể sử dụng môi trường ảo hoặc bạn có thể sử dụng cài đặt Python trên toàn hệ thống của mình, mặc dù tùy chọn đầu tiên được ưu tiên hơn. PyMongo có sẵn trên PyPI, vì vậy cách nhanh nhất để cài đặt nó là với

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
25. Bật thiết bị đầu cuối của bạn và chạy lệnh sau

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
40

Sau một vài lần tải xuống và các bước liên quan khác, lệnh này sẽ cài đặt PyMongo trên môi trường Python của bạn. Lưu ý rằng nếu bạn không cung cấp số phiên bản cụ thể thì

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
25 sẽ cài đặt phiên bản mới nhất hiện có

Ghi chú. Để có hướng dẫn đầy đủ về cách cài đặt PyMongo, hãy xem trang Cài đặt/Nâng cấp trong tài liệu chính thức của nó

Sau khi cài đặt xong, bạn có thể bắt đầu phiên tương tác Python và chạy lần nhập sau

>>>

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
41

Nếu điều này chạy mà không gây ra ngoại lệ trong trình bao Python, thì cài đặt của bạn hoạt động tốt. Nếu không, sau đó cẩn thận thực hiện lại các bước

Loại bỏ các quảng cáo

Thiết lập kết nối

Để thiết lập kết nối với cơ sở dữ liệu, bạn cần tạo một phiên bản

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
27. Lớp này cung cấp ứng dụng khách cho phiên bản hoặc máy chủ MongoDB. Mỗi đối tượng máy khách có một nhóm kết nối tích hợp sẵn, theo mặc định, nhóm này xử lý tới hàng trăm kết nối đến máy chủ

Quay lại phiên tương tác Python của bạn và nhập

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
27 từ
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
29. Sau đó, tạo một đối tượng máy khách để giao tiếp với phiên bản MongoDB hiện đang chạy của bạn

>>>

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
42

Đoạn mã trên thiết lập kết nối với máy chủ mặc định (

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
70) và cổng (
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
91).
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
27 lấy một tập hợp các đối số cho phép bạn chỉ định máy chủ tùy chỉnh, cổng và các tham số kết nối khác. Ví dụ: để cung cấp máy chủ và cổng tùy chỉnh, bạn có thể sử dụng đoạn mã sau

>>>

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
43

Điều này rất hữu ích khi bạn cần cung cấp một

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
73 và
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
74 khác với thiết lập mặc định của MongoDB. Bạn cũng có thể sử dụng định dạng MongoDB URI

>>>

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
44

Tất cả các phiên bản này của

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
27 đều cung cấp cùng một thiết lập máy khách để kết nối phiên bản MongoDB hiện tại của bạn. Cái nào bạn nên sử dụng chỉ phụ thuộc vào mức độ rõ ràng mà bạn muốn có trong mã của mình

Sau khi bạn đã khởi tạo

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
27, bạn có thể sử dụng phiên bản của nó để tham chiếu đến kết nối cơ sở dữ liệu cụ thể đó, giống như bạn đã làm với đối tượng
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
94 của shell
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
7 trong phần trên

Làm việc với cơ sở dữ liệu, bộ sưu tập và tài liệu

Khi bạn có phiên bản kết nối của

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
27, bạn có thể truy cập bất kỳ cơ sở dữ liệu nào được quản lý bởi máy chủ MongoDB được chỉ định. Để xác định cơ sở dữ liệu nào bạn muốn sử dụng, bạn có thể sử dụng ký hiệu dấu chấm giống như bạn đã làm trong shell
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
7

>>>

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
45

Trong trường hợp này,

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
98 là tên của cơ sở dữ liệu bạn sẽ làm việc với. Nếu cơ sở dữ liệu không tồn tại thì MongoDB sẽ tạo nó cho bạn, nhưng chỉ khi bạn thực hiện thao tác đầu tiên trên cơ sở dữ liệu

Bạn cũng có thể sử dụng quyền truy cập kiểu từ điển nếu tên của cơ sở dữ liệu không phải là mã định danh Python hợp lệ

>>>

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
46

Câu lệnh này hữu ích khi tên cơ sở dữ liệu của bạn không phải là mã định danh Python hợp lệ. Ví dụ: nếu cơ sở dữ liệu của bạn có tên là

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
402 thì bạn cần sử dụng quyền truy cập kiểu từ điển

Ghi chú. Khi bạn sử dụng shell

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
7, bạn có quyền truy cập vào cơ sở dữ liệu thông qua đối tượng toàn cục
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
94. Khi bạn sử dụng PyMongo, bạn có thể gán cơ sở dữ liệu cho một biến có tên là
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
94 để có hành vi tương tự

Lưu trữ dữ liệu trong cơ sở dữ liệu của bạn bằng PyMongo tương tự như những gì bạn đã làm với trình bao

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
7 trong các phần trên. Nhưng trước tiên, bạn cần tạo tài liệu của mình. Trong Python, bạn sử dụng từ điển để tạo tài liệu

>>>

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
47

Khi bạn đã tạo tài liệu dưới dạng từ điển, bạn cần chỉ định bộ sưu tập nào bạn muốn sử dụng. Để làm điều đó, bạn có thể sử dụng ký hiệu dấu chấm trên đối tượng cơ sở dữ liệu

>>>

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
48

Trong trường hợp này,

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
74 là một phiên bản của
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
408 và đại diện cho một bộ sưu tập vật lý các tài liệu trong cơ sở dữ liệu của bạn. Bạn có thể chèn tài liệu vào
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
74 bằng cách gọi
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
410 trên đó với tài liệu làm đối số

>>>

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
49

Ở đây,

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
410 lấy
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
412, chèn nó vào bộ sưu tập
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
74 và trả về một đối tượng
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
414. Đối tượng này cung cấp phản hồi về tài liệu được chèn. Lưu ý rằng vì MongoDB tạo
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
415 một cách linh hoạt, đầu ra của bạn sẽ không khớp với
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
415 được hiển thị ở trên

Nếu bạn có nhiều tài liệu cần thêm vào cơ sở dữ liệu, thì bạn có thể sử dụng

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
417 để chèn chúng cùng một lúc

>>>

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
80

Điều này nhanh hơn và đơn giản hơn so với việc gọi

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
410 nhiều lần. Lệnh gọi tới
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
417 lấy một tài liệu có thể lặp lại và chèn chúng vào bộ sưu tập
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
74 trong cơ sở dữ liệu
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
98 của bạn. Phương thức trả về một phiên bản của
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
422, cung cấp thông tin về các tài liệu được chèn

Để truy xuất tài liệu từ bộ sưu tập, bạn có thể sử dụng

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
59. Không có đối số,
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
59 trả về một đối tượng
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
425 mang lại các tài liệu trong bộ sưu tập theo yêu cầu

>>>

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
81

Tại đây, bạn chạy một vòng lặp trên đối tượng mà

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
59 trả về và in các kết quả liên tiếp, sử dụng
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
427 để cung cấp định dạng đầu ra thân thiện với người dùng

Bạn cũng có thể sử dụng

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
428 để truy xuất một tài liệu. Trong trường hợp này, bạn có thể sử dụng từ điển chứa các trường để khớp. Ví dụ: nếu bạn muốn truy xuất hướng dẫn đầu tiên của Jon, thì bạn có thể làm như thế này

>>>

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
82

Lưu ý rằng

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
415 của hướng dẫn được đặt dưới khóa
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
52, đây là mã định danh tài liệu duy nhất mà MongoDB tự động thêm khi bạn chèn tài liệu vào cơ sở dữ liệu của mình

PyMongo cũng cung cấp các phương thức để thay thế, cập nhật và xóa tài liệu khỏi cơ sở dữ liệu. Nếu bạn muốn tìm hiểu sâu hơn về các tính năng này, hãy xem tài liệu về

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
408

Loại bỏ các quảng cáo

Đóng kết nối

Thiết lập kết nối tới cơ sở dữ liệu MongoDB thường là một hoạt động tốn kém. Nếu bạn có một ứng dụng liên tục truy xuất và thao tác dữ liệu trong cơ sở dữ liệu MongoDB, thì có lẽ bạn không muốn mở và đóng kết nối mọi lúc vì điều này có thể ảnh hưởng đến hiệu suất của ứng dụng của bạn

Trong tình huống này, bạn nên duy trì kết nối của mình và chỉ đóng nó trước khi thoát khỏi ứng dụng để xóa tất cả các tài nguyên đã thu được. Bạn có thể đóng kết nối bằng cách gọi

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
432 trên phiên bản
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
27

>>>

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
83

Một tình huống khác là khi bạn có một ứng dụng thỉnh thoảng sử dụng cơ sở dữ liệu MongoDB. Trong trường hợp này, bạn có thể muốn mở kết nối khi cần và đóng kết nối ngay sau khi sử dụng để giải phóng tài nguyên thu được. Một cách tiếp cận nhất quán cho vấn đề này là sử dụng câu lệnh

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
434. Có,
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
27 triển khai giao thức quản lý ngữ cảnh

>>>

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
84

Nếu bạn sử dụng câu lệnh

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
434 để xử lý ứng dụng khách MongoDB của mình, thì ở cuối khối mã
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
434, phương thức
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
438 của ứng dụng khách sẽ được gọi, đồng thời đóng kết nối bằng cách gọi
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
432

Sử dụng MongoDB với Python và MongoEngine

Mặc dù PyMongo là một trình điều khiển Python tuyệt vời và mạnh mẽ để giao tiếp với MongoDB, nhưng nó có thể hơi quá thấp đối với nhiều dự án của bạn. Với PyMongo, bạn sẽ phải viết rất nhiều mã để chèn, truy xuất, cập nhật và xóa tài liệu một cách nhất quán

Một thư viện cung cấp khả năng trừu tượng hóa cao hơn trên PyMongo là MongoEngine. MongoEngine là một trình ánh xạ tài liệu đối tượng (ODM), tương đương với trình ánh xạ quan hệ đối tượng dựa trên SQL (ORM). MongoEngine cung cấp sự trừu tượng hóa dựa trên lớp, vì vậy tất cả các mô hình bạn tạo đều là các lớp

Cài đặt MongoEngine

Có một số thư viện Python giúp bạn làm việc với MongoDB. Tuy nhiên, MongoEngine là một ứng dụng phổ biến cung cấp một bộ tính năng hay, tính linh hoạt và hỗ trợ cộng đồng. MongoEngine có sẵn trên PyPI. Bạn có thể cài đặt nó bằng lệnh

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
25 sau

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
85

Khi bạn đã cài đặt MongoEngine vào môi trường Python của mình, bạn đã sẵn sàng bắt đầu làm việc với cơ sở dữ liệu MongoDB bằng các tính năng hướng đối tượng của Python. Bước tiếp theo là kết nối với phiên bản MongoDB đang chạy của bạn

Thiết lập kết nối

Để thiết lập kết nối với cơ sở dữ liệu của bạn, bạn cần sử dụng

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
441. Hàm này có một số đối số. Tuy nhiên, trong hướng dẫn này, bạn sẽ chỉ sử dụng ba trong số chúng. Trong phiên tương tác Python của bạn, hãy nhập mã sau

>>>

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
86

Tại đây, trước tiên bạn đặt tên cơ sở dữ liệu

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
94 thành
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
443, đây là tên của cơ sở dữ liệu bạn muốn làm việc trong đó. Sau đó, bạn cung cấp một
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
73 và một
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
74 để kết nối với phiên bản MongoDB hiện tại của bạn. Vì bạn đang sử dụng
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
73 và
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
74 mặc định nên bạn có thể bỏ qua hai tham số này và chỉ sử dụng
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
448

Làm việc với Bộ sưu tập và Tài liệu

Để tạo tài liệu với MongoEngine, trước tiên bạn cần xác định loại dữ liệu bạn muốn tài liệu có. Nói cách khác, bạn cần xác định một lược đồ tài liệu. MongoEngine khuyến khích bạn xác định lược đồ tài liệu để giúp bạn giảm lỗi mã hóa và cho phép bạn xác định tiện ích hoặc phương thức trợ giúp

Tương tự như ORM, các ODM như MongoEngine cung cấp lớp cơ sở hoặc lớp mô hình để bạn xác định lược đồ tài liệu. Trong các ORM, lớp đó tương đương với một bảng và các thể hiện của nó tương đương với các hàng. Trong MongoEngine, lớp tương đương với một bộ sưu tập và các thể hiện của nó tương đương với tài liệu

Để tạo một mô hình, bạn cần phân lớp

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
449 và cung cấp các trường bắt buộc dưới dạng thuộc tính lớp. Để tiếp tục với ví dụ về blog, đây là cách bạn có thể tạo mô hình cho hướng dẫn của mình

>>>

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
87

Với mô hình này, bạn nói với MongoEngine rằng bạn muốn một tài liệu

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
450 có một
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
451, một
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
452, một danh sách
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
453 và một
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
454. Lớp cơ sở,
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
449, sử dụng thông tin đó cùng với các loại trường để xác thực dữ liệu đầu vào cho bạn

Ghi chú. Một trong những nhiệm vụ khó khăn hơn với các mô hình cơ sở dữ liệu là xác thực dữ liệu. Làm thế nào để bạn đảm bảo rằng dữ liệu đầu vào phù hợp với yêu cầu định dạng của bạn?

MongoDB được cho là một cơ sở dữ liệu không có lược đồ, nhưng điều đó không có nghĩa là nó không có lược đồ. Việc có các tài liệu với một lược đồ khác trong cùng một bộ sưu tập có thể dẫn đến lỗi xử lý và hành vi không nhất quán

Ví dụ: nếu bạn cố lưu một đối tượng

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
450 mà không có đối tượng
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
451, thì mô hình của bạn sẽ đưa ra một ngoại lệ và cho bạn biết. Bạn có thể tiến xa hơn nữa và thêm nhiều hạn chế hơn, chẳng hạn như độ dài của
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
451, v.v.

Có một số tham số chung mà bạn có thể sử dụng để xác thực các trường. Dưới đây là một số thông số thường được sử dụng

  • > show dbs
    admin          0.000GB
    config         0.000GB
    local          0.000GB
    >
    
    459 chỉ định một tên trường khác
  • > show dbs
    admin          0.000GB
    config         0.000GB
    local          0.000GB
    >
    
    460 đảm bảo rằng trường được cung cấp
  • > show dbs
    admin          0.000GB
    config         0.000GB
    local          0.000GB
    >
    
    461 cung cấp giá trị mặc định cho một trường nhất định nếu không có giá trị nào được cung cấp
  • > show dbs
    admin          0.000GB
    config         0.000GB
    local          0.000GB
    >
    
    462 đảm bảo rằng không có tài liệu nào khác trong bộ sưu tập có cùng giá trị cho trường này

Mỗi loại trường cụ thể cũng có bộ tham số riêng. Bạn có thể kiểm tra tài liệu để có hướng dẫn đầy đủ về các loại trường có sẵn

Để lưu tài liệu vào cơ sở dữ liệu của bạn, bạn cần gọi

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
463 trên đối tượng tài liệu. Nếu tài liệu đã tồn tại, thì tất cả các thay đổi sẽ được áp dụng cho tài liệu hiện có. Nếu tài liệu không tồn tại thì nó sẽ được tạo

Dưới đây là ví dụ về cách tạo và lưu hướng dẫn vào cơ sở dữ liệu hướng dẫn mẫu của bạn

>>>

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
88

Theo mặc định,

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
463 chèn tài liệu mới vào một bộ sưu tập được đặt tên theo lớp mô hình,
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
450, ngoại trừ việc sử dụng các chữ cái viết thường. Trong trường hợp này, tên bộ sưu tập là
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
74, phù hợp với bộ sưu tập bạn đang sử dụng để lưu các hướng dẫn của mình

PyMongo thực hiện xác thực dữ liệu khi bạn gọi

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
463. Điều này có nghĩa là nó kiểm tra dữ liệu đầu vào dựa trên lược đồ mà bạn đã khai báo trong lớp mô hình
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
450. Nếu dữ liệu đầu vào vi phạm lược đồ hoặc bất kỳ ràng buộc nào của lược đồ, thì bạn sẽ nhận được một ngoại lệ và dữ liệu không được lưu vào cơ sở dữ liệu

Ví dụ: đây là điều sẽ xảy ra nếu bạn cố lưu một hướng dẫn mà không cung cấp

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
451

>>>

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
89

Trong ví dụ này, trước tiên hãy lưu ý rằng bạn cũng có thể xây dựng một đối tượng

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
450 bằng cách gán giá trị cho các thuộc tính của nó. Thứ hai, vì bạn không cung cấp một
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
451 cho hướng dẫn mới, nên
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
463 sẽ đưa ra một
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
473 cho bạn biết rằng trường
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
451 là bắt buộc. Có xác thực dữ liệu tự động là một tính năng tuyệt vời sẽ giúp bạn đỡ đau đầu

Mỗi phân lớp

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
449 có một thuộc tính
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
476 mà bạn có thể sử dụng để truy cập các tài liệu trong bộ sưu tập được liên kết. Ví dụ: đây là cách bạn có thể in
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
451 của tất cả các hướng dẫn hiện tại của mình

>>>

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
0

Vòng lặp

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
478 lặp lại tất cả các hướng dẫn của bạn và in dữ liệu
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
451 của chúng ra màn hình. Bạn cũng có thể sử dụng
> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
476 để lọc tài liệu của mình. Ví dụ: giả sử bạn muốn truy xuất các hướng dẫn do Alex viết. Trong trường hợp đó, bạn có thể làm một cái gì đó như thế này

>>>

> show dbs
admin          0.000GB
config         0.000GB
local          0.000GB
>
1

MongoEngine rất phù hợp để quản lý cơ sở dữ liệu MongoDB của bạn cho bất kỳ loại ứng dụng nào. Các tính năng của nó làm cho nó trở nên lý tưởng để tạo các chương trình hiệu quả và có thể mở rộng bằng cách sử dụng phương pháp cấp cao. Nếu bạn đang tìm kiếm thêm thông tin về MongoEngine, hãy nhớ xem hướng dẫn sử dụng của nó

Loại bỏ các quảng cáo

Phần kết luận

Nếu bạn cần một giải pháp cơ sở dữ liệu mạnh mẽ, có thể mở rộng và linh hoạt, thì MongoDB có thể là một lựa chọn tốt cho bạn. MongoDB là một cơ sở dữ liệu NoSQL trưởng thành và phổ biến với sự hỗ trợ tuyệt vời của Python. Với sự hiểu biết tốt về cách truy cập MongoDB bằng Python, bạn sẽ sẵn sàng tạo các ứng dụng cơ sở dữ liệu có quy mô tốt và mang lại hiệu suất tuyệt vời

Với MongoDB, bạn cũng có lợi ích từ mô hình dữ liệu có thể đọc được và có tính linh hoạt cao, vì vậy bạn có thể nhanh chóng thích ứng với các thay đổi yêu cầu

Trong hướng dẫn này, bạn đã học

  • Cơ sở dữ liệu MongoDB và NoSQL là gì
  • Cách cài đặt và chạy MongoDB trên hệ thống của bạn
  • Cách tạo và làm việc với cơ sở dữ liệu MongoDB
  • Cách giao tiếp với MongoDB trong Python bằng trình điều khiển PyMongo
  • Cách sử dụng trình ánh xạ tài liệu đối tượng MongoEngine để làm việc với MongoDB

Các ví dụ bạn đã mã hóa trong hướng dẫn này có sẵn để tải xuống. Để lấy mã nguồn của họ, hãy nhấp vào liên kết bên dưới

Lấy mã nguồn. Nhấp vào đây để lấy mã nguồn mà bạn sẽ sử dụng để tìm hiểu về cách sử dụng MongoDB với Python trong hướng dẫn này

Đánh dấu là đã hoàn thành

🐍 Thủ thuật Python 💌

Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python

MongoDB có thể được sử dụng miễn phí không?

Gửi cho tôi thủ thuật Python »

Giới thiệu về Leodanis Pozo Ramos

MongoDB có thể được sử dụng miễn phí không?
MongoDB có thể được sử dụng miễn phí không?

Leodanis là một kỹ sư công nghiệp yêu thích Python và phát triển phần mềm. Anh ấy là một nhà phát triển Python tự học với hơn 6 năm kinh nghiệm. Anh ấy là một nhà văn đam mê kỹ thuật với số lượng bài báo được xuất bản ngày càng tăng trên Real Python và các trang web khác

» Tìm hiểu thêm về Leodanis


Mỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là

MongoDB có thể được sử dụng miễn phí không?

Aldren

MongoDB có thể được sử dụng miễn phí không?

Bartosz

MongoDB có thể được sử dụng miễn phí không?

Joanna

MongoDB có thể được sử dụng miễn phí không?

Gia-cốp

Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực

MongoDB có thể được sử dụng miễn phí không?

Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bậc thầy Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bạn nghĩ sao?

Đánh giá bài viết này

Tweet Chia sẻ Chia sẻ Email

Bài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?

Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. Nhận các mẹo để đặt câu hỏi hay và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi

MongoDB có miễn phí cho mục đích thương mại không?

Máy chủ cộng đồng MongoDB (SSPL), miễn phí cài đặt theo các điều khoản của giấy phép . MongoDB Enterprise Advanced Server (bao gồm các tính năng bảo mật, kiểm tra, quản lý và công cụ bổ sung) có sẵn với đăng ký hỗ trợ thương mại (Giấy phép thương mại)

Bao nhiêu MongoDB miễn phí?

MongoDB Atlas cung cấp mức giá miễn phí vĩnh viễn và mức giá dựa trên mức sử dụng chỉ với $9/tháng cho phiên bản dùng chung hoặc $60/tháng dành riêng. You're only charged per instance hour actually running and a flat rate for data transfer, so changing configurations is no big deal.

MongoDB có miễn phí vĩnh viễn không?

Miễn phí — Mãi mãi .

Phiên bản MongoDB nào miễn phí?

MongoDB Atlas là tùy chọn dịch vụ MongoDB được lưu trữ trên đám mây, không yêu cầu chi phí cài đặt và cung cấp một bậc miễn phí để bắt đầu.