Hướng dẫn connect to mongodb atlas python - kết nối với mongodb atlas python

Trong bài viết này, chúng tôi sẽ kết nối với một cơ sở dữ liệu MongoDB đơn giản với Python. Chúng tôi sẽ thực hiện các hoạt động đơn giản trên dữ liệu như:

  • Phép cộng
  • Cập nhật
  • Xóa
  • Thêm nhiều bản ghi cùng một lúc

Phiên bản video của bài viết này có sẵn ở đây.

MongoDB Atlas

Đăng ký MongoDB Atlas TẠI ĐÂY: Truy cập cơ sở dữ liệu | Atlas: MongoDB AtlasMongoDB Atlas here: Database Access | Atlas: MongoDB Atlas

IMG Nguồn: Đăng ký MongoDB Atlas | Lưu trữ đám mây MongoDB | MongoDB

Chọn tùy chọn triển khai:deployment option :

IMG Nguồn: Đăng ký MongoDB Atlas | Lưu trữ đám mây MongoDB | MongoDB

Chọn nhà cung cấp đám mây mong muốn và vùng gần nhất:cloud provider and the closest region :

IMG của tác giả

Trong tab truy cập cơ sở dữ liệu của bạn, hãy truy cập vào Thêm một người dùng cơ sở dữ liệu mới:Add a New Database User” :

IMG của tác giả

Trong tab truy cập cơ sở dữ liệu của bạn, hãy truy cập vào Thêm một người dùng cơ sở dữ liệu mới:

IMG của tác giả

Trong tab truy cập cơ sở dữ liệu của bạn, hãy truy cập vào Thêm một người dùng cơ sở dữ liệu mới:Add My Own Data” button :

Tạo một cụm để kiểm tra:

Bạn có thể tải một bộ dữ liệu mẫu hiện có hoặc tạo và thêm dữ liệu của riêng bạn. Nhấp vào nút Thêm dữ liệu của riêng tôi:

IMG của tác giả

Trong tab truy cập cơ sở dữ liệu của bạn, hãy truy cập vào Thêm một người dùng cơ sở dữ liệu mới:

IMG của tác giả

Trong tab truy cập cơ sở dữ liệu của bạn, hãy truy cập vào Thêm một người dùng cơ sở dữ liệu mới:Network Access to connect your cluster. Add your IP address here as your Database User has already been created :

IMG của tác giả

Trong tab truy cập cơ sở dữ liệu của bạn, hãy truy cập vào Thêm một người dùng cơ sở dữ liệu mới:connection method. Click on “Connect your application” :

IMG của tác giả

Trong tab truy cập cơ sở dữ liệu của bạn, hãy truy cập vào Thêm một người dùng cơ sở dữ liệu mới:driver and version as “Python and 3.6” or later respectively :

Tạo một cụm để kiểm tra:

Bạn có thể tải một bộ dữ liệu mẫu hiện có hoặc tạo và thêm dữ liệu của riêng bạn. Nhấp vào nút Thêm dữ liệu của riêng tôi:

mongodb+srv://SoumiBardhan:@cluster-test.fndbj.mongodb.net/myFirstDatabase?retryWrites=true&w=majority

IMG của tác giả

import pymongo
from pymongo import MongoClient

Hộp thoại này sẽ mở nơi bạn phải nhập tên cơ sở dữ liệu và tên thu thập cho cơ sở dữ liệu mới của bạn:

cluster = MongoClient("mongodb+srv://:@cluster-test.fndbj.mongodb.net/UserData?retryWrites=true&w=majority")

Bạn sẽ có thể xem màn hình này:database

cluster = MongoClient("mongodb+srv://:@cluster-test.fndbj.mongodb.net/UserData?retryWrites=true&w=majority")
7 by providing the name of the database you created earlier. Initialise the collection by providing the collection name you created.

db = cluster["UserData"]collection = db["Flask_mongo"]

Bây giờ đi đến truy cập mạng để kết nối cụm của bạn. Thêm địa chỉ IP của bạn vào đây vì người dùng cơ sở dữ liệu của bạn đã được tạo:

collection.insert_one({"_id":0, "user_name":"Soumi"})
collection.insert_one({"_id":100, "user_name":"Ravi"})

Khi đã hoàn thành, bạn có thể chọn một phương thức kết nối. Nhấp vào “Kết nối ứng dụng của bạn”:

Chọn trình điều khiển và phiên bản của bạn như là Py Python và 3.6, hoặc sau đó:

IMG của tác giả

Trong tab truy cập cơ sở dữ liệu của bạn, hãy truy cập vào Thêm một người dùng cơ sở dữ liệu mới:

collection.delete_one({"_id":0, "user_name":"Soumi"})

Tạo một cụm để kiểm tra:

Bạn có thể tải một bộ dữ liệu mẫu hiện có hoặc tạo và thêm dữ liệu của riêng bạn. Nhấp vào nút Thêm dữ liệu của riêng tôi:

post1 = {"_id":"0", "user_name":"Soumi"}post2 = {"_id":"100", "user_name":"Ravi"}collection.insert_many([post1,post2])

IMG của tác giả

collection.find_one_and_update({"_id":"0"}, {"$set" : {"user_name" : updated_user_name}}, upsert = 0 )

Hộp thoại này sẽ mở nơi bạn phải nhập tên cơ sở dữ liệu và tên thu thập cho cơ sở dữ liệu mới của bạn:whitelist your current IP as required as it changes with time.

IMG của tác giả

Trong tab truy cập cơ sở dữ liệu của bạn, hãy truy cập vào Thêm một người dùng cơ sở dữ liệu mới:

Python là gì?

Python, con dao quân đội Thụy Sĩ của các ngôn ngữ được đánh máy động, có sự hỗ trợ toàn diện cho các nhiệm vụ xử lý và thao tác dữ liệu chung. Các loại dữ liệu từ điển và danh sách bản địa của Python, làm cho nó chỉ đứng sau JavaScript để điều khiển các tài liệu JSON-và rất phù hợp để làm việc với BSON. Pymongo, thư viện trình điều khiển mongoDB tiêu chuẩn cho Python, rất dễ sử dụng và cung cấp API trực quan để truy cập cơ sở dữ liệu, bộ sưu tập và tài liệu.

Các đối tượng được lấy từ MongoDB qua Pymongo tương thích với từ điển và danh sách, vì vậy chúng ta có thể dễ dàng thao tác, lặp lại và in chúng.

Cách MongoDB lưu trữ dữ liệu

MongoDB lưu trữ dữ liệu trong các tài liệu giống JSON:

________số 8

Từ điển Python trông giống như:

# python dictionary
dict_1 = {
  "item_name" : "blender",
  "max_discount" : "10%",
  "batch_number" : "RR450020FRG",
  "price" : 340
}

Đọc để xem tổng quan về cách bắt đầu và cung cấp tiềm năng của sự kết hợp mạnh mẽ này.

Điều kiện tiên quyết

Tải xuống và cài đặt Python trên máy của bạn. Để xác nhận nếu cài đặt của bạn là đúng, hãy nhập

cluster = MongoClient("mongodb+srv://:@cluster-test.fndbj.mongodb.net/UserData?retryWrites=true&w=majority")
9 vào thiết bị đầu cuối dòng lệnh của bạn. Bạn sẽ nhận được một cái gì đó tương tự như:

import pymongo
from pymongo import MongoClient
0

Bạn có thể làm theo các ví dụ Python MongoDB trong hướng dẫn này ngay cả khi bạn chưa quen với Python.

Chúng tôi khuyên bạn nên thiết lập một cụm cấp miễn phí của MongoDB Atlas cho hướng dẫn này.

Kết nối Python và MongoDB Atlas

Pymongo có một bộ các gói cho tương tác Python MongoDB. Đối với hướng dẫn sau đây, bắt đầu bằng cách tạo một môi trường ảo và kích hoạt nó.

import pymongo
from pymongo import MongoClient
1

Bây giờ bạn đang ở trong môi trường ảo của mình, bạn có thể cài đặt pymongo. Trong thiết bị đầu cuối của bạn, loại:

import pymongo
from pymongo import MongoClient
2

Bây giờ, chúng ta có thể sử dụng Pymongo như một thư viện Python MongoDB trong mã của chúng tôi với một tuyên bố nhập khẩu.

Tạo cơ sở dữ liệu MongoDB trong Python

Bước đầu tiên để kết nối Python với Atlas là tạo ra một cụm. Bạn có thể làm theo các hướng dẫn từ tài liệu để tìm hiểu cách tạo và thiết lập cụm của bạn.

Tiếp theo, tạo một tệp có tên

db = cluster["UserData"]collection = db["Flask_mongo"]
0 trong bất kỳ thư mục nào để viết mã pymongo. Bạn có thể sử dụng bất kỳ trình soạn thảo văn bản đơn giản, như Visual Studio Code.

Tạo ứng dụng khách MongoDB bằng cách thêm các mục sau:

import pymongo
from pymongo import MongoClient
3

Để tạo Mongoclient, bạn sẽ cần một chuỗi kết nối với cơ sở dữ liệu của mình. Nếu bạn đang sử dụng Atlas, bạn có thể làm theo các bước từ tài liệu để có được chuỗi kết nối đó. Sử dụng

db = cluster["UserData"]collection = db["Flask_mongo"]
1 để tạo Mongoclient và nhận kết nối cơ sở dữ liệu MongoDB. Thay đổi tên người dùng, mật khẩu và tên cụm.

Trong hướng dẫn Python MongoDB này, chúng tôi sẽ tạo một danh sách mua sắm và thêm một vài mặt hàng. Đối với điều này, chúng tôi đã tạo một cơ sở dữ liệu

db = cluster["UserData"]collection = db["Flask_mongo"]
2.

MongoDB không tạo ra một cơ sở dữ liệu cho đến khi bạn có các bộ sưu tập và tài liệu trong đó. Vì vậy, hãy để tạo ra một bộ sưu tập tiếp theo.

Tạo một bộ sưu tập trong Python

Để tạo một bộ sưu tập, hãy chuyển tên bộ sưu tập cho cơ sở dữ liệu. Trong một tệp mới có tên là tệp

db = cluster["UserData"]collection = db["Flask_mongo"]
3, thêm mã sau.

import pymongo
from pymongo import MongoClient
4

Điều này tạo ra một bộ sưu tập có tên

db = cluster["UserData"]collection = db["Flask_mongo"]
4 trong cơ sở dữ liệu
db = cluster["UserData"]collection = db["Flask_mongo"]
2.

Chèn tài liệu trong Python

Để chèn nhiều tài liệu cùng một lúc, hãy sử dụng phương pháp pymongo

db = cluster["UserData"]collection = db["Flask_mongo"]
6.

import pymongo
from pymongo import MongoClient
5

Hãy để chèn một tài liệu thứ ba mà không cần chỉ định trường

db = cluster["UserData"]collection = db["Flask_mongo"]
7. Lần này, chúng tôi thêm một trường loại dữ liệu ‘ngày. Để thêm ngày sử dụng pymongo, hãy sử dụng gói Python
db = cluster["UserData"]collection = db["Flask_mongo"]
8.

Bắt đầu bằng cách cài đặt gói bằng lệnh sau:


import pymongo
from pymongo import MongoClient
6

Thêm phần sau vào

db = cluster["UserData"]collection = db["Flask_mongo"]
3:

import pymongo
from pymongo import MongoClient
7

Chúng tôi sử dụng phương thức

collection.insert_one({"_id":0, "user_name":"Soumi"})
collection.insert_one({"_id":100, "user_name":"Ravi"})
0 để chèn một tài liệu.

Mở dòng lệnh và điều hướng đến thư mục nơi bạn đã lưu

collection.insert_one({"_id":0, "user_name":"Soumi"})
collection.insert_one({"_id":100, "user_name":"Ravi"})
1

Thực thi tệp bằng cách sử dụng

import pymongo
from pymongo import MongoClient
8

command.

Hãy để kết nối với MongoDB Atlas UI và kiểm tra những gì chúng ta có cho đến nay.

Đăng nhập vào cụm Atlas của bạn và nhấp vào nút Bộ sưu tập.

Ở phía bên trái, bạn có thể thấy cơ sở dữ liệu và tên thu thập mà chúng tôi đã tạo. Nếu bạn nhấp vào tên thu thập, bạn cũng có thể xem dữ liệu:

Hướng dẫn connect to mongodb atlas python - kết nối với mongodb atlas python

Hướng dẫn connect to mongodb atlas python - kết nối với mongodb atlas python

Trường

db = cluster["UserData"]collection = db["Flask_mongo"]
7 thuộc loại ObjectID theo mặc định. Nếu chúng tôi không chỉ định trường
db = cluster["UserData"]collection = db["Flask_mongo"]
7, MongoDB sẽ tạo ra như vậy. Không phải tất cả các trường có trong một tài liệu có mặt trong các trường khác. Nhưng MongoDB không ngăn bạn nhập dữ liệu - đây là bản chất của cơ sở dữ liệu sơ đồ.

Nếu chúng ta chèn

collection.insert_one({"_id":0, "user_name":"Soumi"})
collection.insert_one({"_id":100, "user_name":"Ravi"})
4 một lần nữa, MongoDB sẽ chèn một tài liệu mới, với giá trị
db = cluster["UserData"]collection = db["Flask_mongo"]
7 mới. Tuy nhiên, hai phần chèn đầu tiên sẽ gây ra lỗi vì trường
db = cluster["UserData"]collection = db["Flask_mongo"]
7, định danh duy nhất.

Truy vấn trong Python

Hãy cùng xem tất cả các tài liệu cùng nhau bằng Find (). Đối với điều đó, chúng tôi sẽ tạo một tệp riêng

collection.insert_one({"_id":0, "user_name":"Soumi"})
collection.insert_one({"_id":100, "user_name":"Ravi"})
7:

import pymongo
from pymongo import MongoClient
9

Mở dòng lệnh và điều hướng đến thư mục nơi bạn đã lưu

collection.insert_one({"_id":0, "user_name":"Soumi"})
collection.insert_one({"_id":100, "user_name":"Ravi"})
7. Thực hiện tệp bằng lệnh
collection.insert_one({"_id":0, "user_name":"Soumi"})
collection.insert_one({"_id":100, "user_name":"Ravi"})
9.

Chúng tôi nhận được danh sách đối tượng từ điển làm đầu ra:

Hướng dẫn connect to mongodb atlas python - kết nối với mongodb atlas python

Chúng ta có thể xem dữ liệu nhưng định dạng không phải là tất cả tuyệt vời. Vì vậy, hãy để Lôi in các tên vật phẩm và danh mục của chúng bằng cách thay thế dòng

collection.delete_one({"_id":0, "user_name":"Soumi"})
0 bằng các mục sau:

cluster = MongoClient("mongodb+srv://:@cluster-test.fndbj.mongodb.net/UserData?retryWrites=true&w=majority")
0

Mặc dù MongoDB nhận được toàn bộ dữ liệu, chúng tôi nhận được một python ‘keyerror trên tài liệu thứ ba.

Hướng dẫn connect to mongodb atlas python - kết nối với mongodb atlas python

Để xử lý các lỗi dữ liệu bị thiếu trong Python, hãy sử dụng pandas.dataFrames. DataFrames là cấu trúc dữ liệu 2D được sử dụng cho các tác vụ xử lý dữ liệu. Phương thức find () pymongo trả về các đối tượng từ điển có thể được chuyển đổi thành một khung dữ liệu trong một dòng mã duy nhất.

Cài đặt thư viện Pandas như:

cluster = MongoClient("mongodb+srv://:@cluster-test.fndbj.mongodb.net/UserData?retryWrites=true&w=majority")
1

Bây giờ nhập thư viện

collection.delete_one({"_id":0, "user_name":"Soumi"})
1 bằng cách thêm dòng sau ở đầu tệp:

cluster = MongoClient("mongodb+srv://:@cluster-test.fndbj.mongodb.net/UserData?retryWrites=true&w=majority")
2

Và thay thế mã trong vòng lặp bằng cách sau để xử lý KeyError trong một bước:

cluster = MongoClient("mongodb+srv://:@cluster-test.fndbj.mongodb.net/UserData?retryWrites=true&w=majority")
3

Các lỗi được thay thế bởi NAN và NAT cho các giá trị bị thiếu.

Hướng dẫn connect to mongodb atlas python - kết nối với mongodb atlas python

Lập chỉ mục trong Python MongoDB

Số lượng tài liệu và bộ sưu tập trong cơ sở dữ liệu trong thế giới thực luôn tiếp tục tăng. Có thể mất một thời gian rất dài để tìm kiếm các tài liệu cụ thể-ví dụ, các tài liệu có bột mì đa dụng trong số các thành phần của chúng-trong một bộ sưu tập rất lớn. Các chỉ mục làm cho tìm kiếm cơ sở dữ liệu nhanh hơn và hiệu quả hơn, và giảm chi phí truy vấn cho các hoạt động như sắp xếp, đếm và khớp.

MongoDB xác định các chỉ mục ở cấp độ thu thập.

Để chỉ mục có ý nghĩa hơn, hãy thêm nhiều tài liệu vào bộ sưu tập của chúng tôi. Chèn nhiều tài liệu cùng một lúc bằng phương pháp

db = cluster["UserData"]collection = db["Flask_mongo"]
6. Đối với các tài liệu mẫu, hãy sao chép mã từ GitHub và thực thi
collection.delete_one({"_id":0, "user_name":"Soumi"})
3 trong thiết bị đầu cuối của bạn.

Hãy nói rằng chúng tôi muốn các mặt hàng thuộc thể loại ‘thực phẩm:

cluster = MongoClient("mongodb+srv://:@cluster-test.fndbj.mongodb.net/UserData?retryWrites=true&w=majority")
4

Để thực hiện truy vấn trên, MongoDB phải quét tất cả các tài liệu. Để xác minh điều này, tải về la bàn. Kết nối với cụm của bạn bằng chuỗi kết nối. Mở bộ sưu tập và đi đến tab Kế hoạch giải thích. Trong ‘bộ lọc, đưa ra các tiêu chí trên và xem kết quả:

Hướng dẫn connect to mongodb atlas python - kết nối với mongodb atlas python

Lưu ý rằng truy vấn quét 14 tài liệu để nhận được năm kết quả.

Hãy tạo một chỉ mục duy nhất trên trường ‘danh mục. Trong một tệp mới có tên

collection.delete_one({"_id":0, "user_name":"Soumi"})
4, thêm mã sau.

cluster = MongoClient("mongodb+srv://:@cluster-test.fndbj.mongodb.net/UserData?retryWrites=true&w=majority")
5

Giải thích lại cùng một bộ lọc trên la bàn UI:

Hướng dẫn connect to mongodb atlas python - kết nối với mongodb atlas python

Lần này, chỉ có năm tài liệu được quét vì chỉ số danh mục. Chúng tôi không thấy sự khác biệt đáng kể về thời gian thực hiện vì số lượng nhỏ các tài liệu. Nhưng chúng tôi thấy một sự giảm lớn về số lượng tài liệu được quét cho truy vấn. Các chỉ mục giúp tối ưu hóa hiệu suất cho các tập hợp, là tốt. Các tập hợp nằm ngoài phạm vi cho hướng dẫn này, nhưng ở đây, một cái nhìn tổng quan.

Python có thể kết nối với MongoDB không?

Pymongo, thư viện trình điều khiển mongoDB tiêu chuẩn cho Python, rất dễ sử dụng và cung cấp API trực quan để truy cập cơ sở dữ liệu, bộ sưu tập và tài liệu. Các đối tượng được lấy từ MongoDB qua Pymongo tương thích với từ điển và danh sách, vì vậy chúng ta có thể dễ dàng thao tác, lặp lại và in chúng., is easy to use and offers an intuitive API for accessing databases, collections, and documents. Objects retrieved from MongoDB through PyMongo are compatible with dictionaries and lists, so we can easily manipulate, iterate, and print them.

Tại sao MongoDB Atlas không kết nối?

Kiểm tra xem bạn đang sử dụng đúng tên người dùng và mật khẩu cho người dùng cơ sở dữ liệu của mình và bạn đang kết nối với việc triển khai cơ sở dữ liệu chính xác.Kiểm tra xem bạn có chỉ định cơ sở dữ liệu AuthSource chính xác trong chuỗi kết nối của bạn không.. Check that you are specifying the correct authSource database in your connection string.

Làm thế nào kết nối MongoDB Atlas với mã VS?

Chọn MongoDB cho Tiện ích mở rộng mã VS ...
Kết nối với MongoDB.....
Để kết nối với cơ sở dữ liệu MongoDB, chọn Thêm kết nối và nhập chi tiết kết nối cho cơ sở dữ liệu sau đó kết nối, mặc định là máy chủ MongoDB cục bộ tại MongoDB: //127.0.0.1: 27017 ..

Làm thế nào để Pycharm kết nối với MongoDB?

Trong trường hợp này, URL kết nối sẽ trông giống như: MongoDB: // LocalHost: 27017/Local?Khi bạn nhấp vào liên kết này, Pycharm tải xuống trình điều khiển được yêu cầu để tương tác với cơ sở dữ liệu.mongodb://localhost:27017/local?authSource=admin . ) and select MongoDB. At the bottom of the data source settings area, click the Download missing driver files link. As you click this link, PyCharm downloads drivers that are required to interact with a database.