Mongodb kết nối với mongoclient như thế nào?
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 Show
Trong hướng dẫn này, bạn sẽ học
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 NoSQLTrong 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
Các ví dụ về cơ sở dữ liệu NoSQL bao gồm
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áoQuản lý cơ sở dữ liệu NoSQL với MongoDBMongoDB 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
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
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
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 MongoDBBâ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
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 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ốngChạ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, 6, khi kết thúc quá trình cài đặtCuố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 7Loại bỏ các quảng cáoTạo cơ sở dữ liệu MongoDB với Shell > show dbs admin 0.000GB config 0.000GB local 0.000GB > 7Nế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 7 để tạo, đọc, cập nhật và xóa tài liệu trên cơ sở dữ liệuChạy vỏ > show dbs admin 0.000GB config 0.000GB local 0.000GB > 7Shell 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 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 1Lệnh này đưa bạn đến trình bao 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 ( 4) để nhập truy vấn và lệnhBạn có thể chuyển địa chỉ cơ sở dữ liệu làm đối số cho lệnh 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 7, bạn có thể chạy 67Thiết lập kết nốiKhi bạn chạy lệnh 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 6 tại 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 91Theo mặc định, trình bao 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 93. Bạn có thể truy cập cơ sở dữ liệu hiện tại thông qua đối tượng 94 4Trong trường hợp này, 94 giữ một tham chiếu đến 93, là cơ sở dữ liệu mặc định. Để chuyển đổi cơ sở dữ liệu, hãy ra lệnh 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 8Lệnh này chuyển kết nối của bạn sang cơ sở dữ liệu 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, 98 sẽ không hiển thị trong danh sách cơ sở dữ liệu hiện tại của bạn
Shell 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ệuThay vì sử dụng ngôn ngữ truy vấn được tiêu chuẩn hóa như SQL, trình bao 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 theoTạo Bộ sưu tập và Tài liệuCơ 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 7, bạn cần trỏ 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 6Trong ví dụ này, bạn sử dụng ký hiệu dấu chấm để tạo 74 dưới dạng một bộ sưu tập trong 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ênKhi 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 9Giá 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 7Mộ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ư 76 trong ví dụ trênMô 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áoLà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 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 7, trước tiên bạn cần chọn một bộ sưu tập và sau đó gọi 79 trên bộ sưu tập với tài liệu của bạn làm đối số 5Vớ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, 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à 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 52 xác định duy nhất tài liệu. MongoDB cho phép bạn nhập một 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 52 cho bạnTươ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 55 2Tại đây, lệnh gọi tới 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 52 được thêm tự động của chúngShell 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 59 để truy xuất tài liệu trong bộ sưu tập 7Cuộc gọi đầu tiên đến 59 lấy tất cả các tài liệu trong bộ sưu tập 74. Mặt khác, cuộc gọi thứ hai tới 59 truy xuất những hướng dẫn được tác giả bởi JoannaVới kiến thức cơ bản này về cách sử dụng MongoDB thông qua shell 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ạnSử dụng MongoDB với Python và PyMongoBâ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 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à PyMongoTrong 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
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 25. Bật thiết bị đầu cuối của bạn và chạy lệnh sau 40Sau 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ì 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 >>> 41Nếu điều này chạy mà không đưa ra một 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áoThiế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 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 27 từ 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>>> 42Đoạn mã trên thiết lập kết nối với máy chủ mặc định ( 70) và cổng ( 91). 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>>> 43Điều này rất hữu ích khi bạn cần cung cấp một 73 và 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>>> 44Tất cả các phiên bản này của 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ìnhSau khi bạn đã khởi tạo 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 94 của shell 7 trong phần trênLàm việc với cơ sở dữ liệu, bộ sưu tập và tài liệuKhi bạn có phiên bản kết nối của 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 7>>> 45Trong trường hợp này, 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ệuBạ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ệ >>> 46Câ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à 402 thì bạn cần sử dụng quyền truy cập kiểu từ điểnGhi chú. Khi bạn sử dụng shell 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ầu 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à 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 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>>> 47Khi 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 >>> 48Trong trường hợp này, 74 là một phiên bản của 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 74 bằng cách gọi 410 trên đó với tài liệu làm đối số>>> 49Ở đây, 410 lấy 412, chèn nó vào bộ sưu tập 74 và trả về một đối tượng 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 415 một cách linh hoạt, đầu ra của bạn sẽ không khớp với 415 được hiển thị ở trênNế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 417 để chèn chúng cùng một lúc>>> 80Điều này nhanh hơn và đơn giản hơn so với việc gọi 410 nhiều lần. Lệnh gọi tới 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 74 trong cơ sở dữ liệu 98 của bạn. Phương thức trả về một phiên bản của 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 59. Không có đối số, 59 trả về một đối tượng 425 mang lại các tài liệu trong bộ sưu tập theo yêu cầu>>> 81Tại đây, bạn chạy một vòng lặp trên đối tượng mà 59 trả về và in các kết quả liên tiếp, sử dụng 427 để cung cấp định dạng đầu ra thân thiện với người dùngBạn cũng có thể sử dụng 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>>> 82Lưu ý rằng 415 của hướng dẫn được đặt dưới khóa 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ìnhPyMongo 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ề 408Loại bỏ các quảng cáoĐóng kết nốiThiế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 432 trên phiên bản 27>>> 83Mộ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 434. Có, 27 triển khai giao thức quản lý ngữ cảnh>>> 84Nếu bạn sử dụng câu lệnh 434 để xử lý ứng dụng khách MongoDB của mình, thì ở cuối khối mã 434, phương thức 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 432Sử dụng MongoDB với Python và MongoEngineMặc dù PyMongo là 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 MongoEngineCó 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 25 sau 85Khi 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 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>>> 86Tại đây, trước tiên bạn đặt tên cơ sở dữ liệu 94 thành 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 73 và một 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 73 và 74 mặc định nên bạn có thể bỏ qua hai tham số này và chỉ sử dụng 448Là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 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>>> 87Vớ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 450 có một 451, một 452, một danh sách 453 và một 454. Lớp cơ sở, 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ạnGhi 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 450 mà không có đối tượng 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 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
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 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ạoDướ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 >>> 88Theo mặc định, 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, 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à 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ìnhPyMongo thực hiện xác thực dữ liệu khi bạn gọi 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 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ệuVí 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 451>>> 89Trong 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 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 451 cho hướng dẫn mới, nên 463 sẽ đưa ra một 473 cho bạn biết rằng trường 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 đầuMỗi phân lớp 449 có một thuộc tính 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 451 của tất cả các hướng dẫn hiện tại của mình>>> 0Vòng lặp 478 lặp lại tất cả các hướng dẫn của bạn và in dữ liệu 451 của chúng ra màn hình. Bạn cũng có thể sử dụng 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>>> 1MongoEngine 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áoSự kết luậnNế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á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 Gửi cho tôi thủ thuật Python » Giới thiệu về Leodanis Pozo Ramos 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ề LeodanisMỗ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à Aldren Bartosz Joanna 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 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 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ẻ EmailBà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 kết nối với MongoClient trong Java như thế nào?Để kết nối. Ứng dụng khách MongoClient = MongoClients. create("< Để kết nối với MongoDB trên phiên bản cục bộ và cổng mặc định của bạn, bạn chỉ cần bỏ qua phần URI của . //máy chủ cục bộ. 27017'.
MongoClient kết nối với cơ sở dữ liệu như thế nào?Cách kết nối với MongoDB . Tạo cơ sở dữ liệu trên MongoDB. Kết nối với vỏ MongoDB. Tạo cơ sở dữ liệu "testdb". Tạo bộ sưu tập "người dùng" và chèn nó vào "testdb" Thiết lập người dùng. Kết nối với db quản trị. Tạo quản trị viên người dùng. . Tạo kết nối tới MongoDB trên CPD. Đặt thông tin cần thiết MongoDB kết nối với việc triển khai như thế nào?MongoDB cho Mã VS cung cấp hai phương thức để tạo kết nối đến triển khai. Bạn có thể. Cung cấp chuỗi kết nối triển khai hoặc. . Điều hướng đến chế độ xem Cụm Atlas của bạn Nhấp vào Kết nối cho cụm mong muốn của bạn Nhấp vào Kết nối với MongoDB Compass Sao chép chuỗi kết nối được cung cấp Kết nối MongoDB hoạt động như thế nào?Hầu hết các trình điều khiển cung cấp một đối tượng kiểu MongoClient. Sử dụng một phiên bản MongoClient cho mỗi ứng dụng trừ khi ứng dụng đang kết nối với nhiều cụm riêng biệt. Mỗi phiên bản MongoClient quản lý nhóm kết nối của chính nó với cụm hoặc nút MongoDB được chỉ định khi MongoClient được tạo . |