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

MongoDB là cơ sở dữ liệu NoSQL nổi tiếng và được sử dụng rộng rãi nhất. Nó đã được sử dụng trong hầu hết mọi ngôn ngữ lập trình ngày nay và do đó, điều quan trọng là phải thiết lập một cách tiêu chuẩn để kết nối với cơ sở dữ liệu. Trong bài viết này, chúng tôi thảo luận về một mục phổ biến như vậy cần được hiểu và sử dụng trong khi thiết lập kết nối cơ sở dữ liệu với MongoDB bất kể ngôn ngữ lập trình

Bài viết thảo luận về sự hình thành chuỗi kết nối được sử dụng để kết nối với MongoDB trong bất kỳ ngôn ngữ lập trình nào. Cũng giống như bất kỳ cơ sở dữ liệu nào khác, MongoDB cũng yêu cầu một chuỗi kết nối để chỉ định các tham số kết nối như URL, cổng, tên người dùng cũng như mật khẩu cho cơ sở dữ liệu. Ngoài ra, MongoDB còn hỗ trợ kết nối nhiều cơ sở dữ liệu cùng lúc bằng cách sử dụng chuỗi kết nối có nhiều tham số. Ở đây, chúng ta sẽ lần lượt thảo luận chi tiết về tất cả các khía cạnh này

2. Chuỗi kết nối tiêu chuẩn

Trong phần này, chúng tôi sẽ thảo luận về định dạng chuỗi kết nối tiêu chuẩn đang được tuân theo trong các thư viện và trình điều khiển có sẵn khác nhau. Danh sách driver và thư viện dùng để kết nối với MongoDB có tại đây. Đoạn mã dưới đây hiển thị chuỗi kết nối tiêu chuẩn được sử dụng

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

Trong ví dụ trên, có tổng cộng năm tham số như được thảo luận bên dưới.
______19. Phần này của chuỗi kết nối được sử dụng để chỉ định tên người dùng và mật khẩu được sử dụng để kết nối với cơ sở dữ liệu được chỉ định. Mật khẩu được sử dụng ở đây cần phải là chuỗi đơn giản. MongoDB tự động cố gắng khớp nó với hàm băm được mã hóa được lưu trữ trong phần phụ trợ. Tên người dùng và mật khẩu phải dành cho cơ sở dữ liệu được chỉ định trong URL. Chúng tôi sẽ đề cập đến thông số này hơn nữa.

mongodb://root:[email protected]:27017/databasename
0. Tham số thứ hai trong chuỗi URL là máy chủ và cổng cho cơ sở dữ liệu chính mà chúng tôi đang cố gắng kết nối. Máy chủ lưu trữ có thể là một IP hoặc tên miền phụ hoặc URL tên miền có liên quan được kết nối với máy chủ mongoDB. Thông số kỹ thuật điển hình của máy chủ và cổng sẽ như hình bên dưới

mongodb://root:[email protected]:27017

URL trên gần như đã hoàn thành chuỗi kết nối để kết nối với MongoDB. Nếu bạn để ý kỹ, chúng tôi vẫn chưa chỉ định cơ sở dữ liệu sẽ được kết nối. Cũng giống như MySQL có các Schemas khác nhau, MongoDB cũng có các cơ sở dữ liệu khác nhau mà bạn có thể kết nối tới. Tham số tiếp theo để thảo luận là cơ sở dữ liệu. Bạn có thể chỉ định cơ sở dữ liệu để kết nối bằng chính tham số chuỗi URL. Mã bên dưới cho biết cách kết nối với cơ sở dữ liệu cụ thể

mongodb://root:[email protected]:27017/databasename

mongodb://root:[email protected]:27017/databasename
1 ở đây chỉ định cơ sở dữ liệu được kết nối. Lưu ý ở đây rằng tên người dùng và mật khẩu được chỉ định ở trên phải dành cho cơ sở dữ liệu này mà bạn định kết nối

3. Chuỗi kết nối phức tạp

MongoDB hỗ trợ sao chép cũng như sharding. Tùy thuộc vào những gì bạn sử dụng, chuỗi kết nối cũng có thể bị ảnh hưởng. Trước khi chúng tôi tiến hành tìm hiểu cách chỉ định chuỗi kết nối, hãy để chúng tôi hiểu các thuật ngữ – Sharding và nhân rộng

3. 1 Sharding và nhân rộng là gì?

Sao chép là một phương pháp cấu hình một bản sao của cơ sở dữ liệu được tạo tự động. MongoDB cung cấp phương tiện để định cấu hình sao chép tự động phiên bản cơ sở dữ liệu chỉ bằng một tinh chỉnh cấu hình nhỏ. Phiên bản sao chép này sẽ giữ cùng một dữ liệu và do đó ngăn chặn bất kỳ sự mất mát dữ liệu nào xảy ra. Phiên bản sao chép không thực sự xuất hiện cho máy chủ ứng dụng và do đó, nó không chia sẻ bất kỳ tải nào

Sharding, tuy nhiên, là khác nhau. Sharding là một bộ bản sao chia sẻ tải trên cơ sở dữ liệu chính. Một phân đoạn trong mongodb là một thể hiện mà máy chủ ứng dụng giống như cơ sở dữ liệu chính. Nó chứa tất cả dữ liệu giống như cơ sở dữ liệu chủ và máy chủ mà máy chủ ứng dụng yêu cầu được định tuyến đến nó

3. 2 Sửa đổi chuỗi kết nối để sử dụng các phân đoạn của cơ sở dữ liệu chủ MongoDB

Để sử dụng các phân đoạn từ cơ sở dữ liệu mongoDB, chúng ta cần chỉ định các URL tương ứng trong chuỗi kết nối. Đây không là gì ngoài IP hoặc URL của máy chủ mongoDB đang giữ bản sao phân đoạn của cơ sở dữ liệu chính. URL phân đoạn có thể được chỉ định bằng cách thêm nhiều IP hoặc URL được phân tách bằng dấu phẩy. Điều này được hiển thị dưới đây

mongodb://root:[email protected]:27017,198.342.121.23:27017,142.32.32.21:3001/databasename

Lưu ý ở đây rằng tên cơ sở dữ liệu được chỉ định sau khi URL/IP đã được chỉ định. Do đó, mọi phiên bản phân đoạn luôn giữ cơ sở dữ liệu dưới cùng một tên. Theo cách này, chúng tôi có thể kết nối với nhiều phiên bản phân đoạn cho một máy chủ MongoDB chính duy nhất

4. Tùy chọn chuỗi kết nối

Các phần trên bao gồm chi tiết các tham số khác nhau có trong chuỗi URL. Các tham số này có liên quan đến cơ sở dữ liệu mà chúng ta phải kết nối. Trong phần này, chúng ta sẽ thảo luận về các tùy chọn khác nhau có thể được chỉ định cho kết nối cơ sở dữ liệu. Các tham số này có thể được truyền theo cách tương tự như các tham số chuỗi truy vấn. Trước khi hiểu cách chỉ định các tùy chọn kết nối khác nhau, trước tiên chúng ta hãy hiểu các tùy chọn khả dụng để chỉ định cho MongoDB.
______22. Tùy chọn kết nối này được sử dụng để chỉ định một bộ bản sao nếu cơ sở dữ liệu chủ mongoDB đang sử dụng một. Khi chỉ định thuộc tính này, bạn nên cung cấp danh sách hạt giống của ít nhất hai cơ sở dữ liệu mongoDB để đảm bảo an toàn cho kết nối không thành công.
______10. Thuộc tính này như tên chỉ ra được sử dụng để định cấu hình xem kết nối có nên sử dụng giao thức SSL để thiết lập kết nối hay không. Giá trị “true” cho thuộc tính sẽ cho biết giao thức SSL cần được sử dụng để kết nối cơ sở dữ liệu.
______11. Thuộc tính được sử dụng để chỉ định thời gian chờ kết nối tính bằng mili giây. Giá trị mặc định của nó lý tưởng là vô hạn, điều đó có nghĩa là kết nối sẽ không bao giờ hết thời gian chờ.
____12. Thuộc tính này, như mã định danh chỉ ra, được sử dụng để chỉ định thời gian chờ của ổ cắm. Theo mặc định, kết nối ổ cắm không bao giờ hết thời gian. Ổ cắm về cơ bản là kênh nguyên tử được sử dụng để trao đổi dữ liệu trong MongoDB. Do đó, thời gian chờ này về cơ bản cho biết trình điều khiển sẽ đợi bao lâu để giao dịch dữ liệu được thực hiện trong MongoDB.
Các thuộc tính này có thể được chỉ định dễ dàng trong URL chuỗi kết nối dưới dạng tham số chuỗi truy vấn. Điều tương tự đã được hiển thị trong đoạn mã dưới đây.

mongodb://root:[email protected]:27017,198.342.121.23:27017,142.32.32.21:3001/databasename?replicaSet=rs01&ssl=false&connectTimeoutMS=100000

Như vậy, chuỗi kết nối tương tự như URL trong ngữ cảnh thông thường

5. Tùy chọn kết nối nâng cao

Trong phần này, chúng ta sẽ xem một số lệnh nâng cao có thể được sử dụng với chuỗi kết nối. Cũng giống như bất kỳ cơ sở dữ liệu nào khác, trình điều khiển MongoDB cũng hỗ trợ nhóm kết nối. Cấu hình nhóm kết nối thường được chỉ định bằng cách sử dụng các hàm hoặc tệp cấu hình cho các cơ sở dữ liệu khác. Tuy nhiên, trong MongoDB, có thể chỉ định các tham số nhóm kết nối ngay trong chuỗi kết nối. Để chỉ định các tham số kết nối này, chúng tôi sử dụng một cú pháp tương tự như được hiển thị ở trên. Trước tiên hãy để chúng tôi hiểu các lệnh nhóm kết nối có sẵn

5. 1 Tham số nhóm kết nối

____13. Tham số được sử dụng để định cấu hình kích thước nhóm kết nối mmaximum cho MongoDB. Kích thước nhóm tối đa cho biết số lượng kết nối tối đa sẽ vẫn mở tại bất kỳ thời điểm nào.
______14. Tương tự như

mongodb://root:[email protected]:27017
3, tham số này xác định số lượng kết nối tối thiểu sẽ được duy trì hoạt động trong suốt quá trình thực thi ứng dụng.
______16. Sẽ có trường hợp kết nối đã được tạo trong nhóm kết nối nhưng không được sử dụng. Một trường hợp như vậy được gọi là kết nối nhàn rỗi. Tham số này được sử dụng để xác định ứng dụng sẽ duy trì kết nối nhàn rỗi như vậy trong bao lâu. Thời gian được chỉ định tính bằng mili giây.
______17. Có giới hạn về số lượng kết nối có thể đợi trong hàng đợi cho mọi kết nối trong nhóm. Giới hạn này có thể được cấu hình bằng tham số này. Số lượng người dùng có thể đợi kết nối tại bất kỳ thời điểm nào bằng kích thước nhóm tối đa nhân với giá trị của tham số này.
____18. Đối với các yêu cầu đang chờ trong hàng đợi, có một giới hạn xác định về lượng thời gian cần đợi trong hàng đợi. Tham số này được sử dụng để chỉ định một yêu cầu sẽ đợi bao lâu trong hàng đợi cho đến khi được phục vụ. Giá trị tham số được chỉ định bằng mili giây.

Tất cả các tham số trên có thể được áp dụng trong chuỗi kết nối giống như các tham số kết nối. Đoạn mã dưới đây cho biết cách chuyển các tham số này trong chuỗi kết nối

mongodb://root:[email protected]:27017
4

5. 2 Đọc & Viết Thông số quan tâm

Tập hợp các tham số tiếp theo được truyền trong chuỗi kết nối là các tham số chỉ định một số cấu hình để đọc và ghi dữ liệu. Các thông số này được giải thích dưới đây

____19. Tùy chọn này được sử dụng để chỉ định liệu MongoDB có thừa nhận việc truyền bá các thay đổi ghi trong cơ sở dữ liệu hay không. Tham số nhận giá trị 0 và 1. Giá trị 0 chỉ ra rằng một xác nhận không thực sự cần thiết.
______20. Được sử dụng để chỉ định thời gian chờ xác nhận ghi dữ liệu. Thời gian chờ này bắt đầu từ thời điểm truy vấn chèn được thực thi. Giá trị tham số được chỉ định theo đơn vị mili giây.
______21. Tùy chọn này cho phép bạn xác định mức độ cô lập cho các lần đọc. Có bốn cấp độ khác nhau có thể được xác định. Những điều này được giải thích dưới đây.
cục bộ. Truy vấn trả về dữ liệu từ phiên bản mà không đảm bảo rằng dữ liệu đã được ghi vào phần lớn các thành viên của bộ bản sao (i. e. có thể được khôi phục). Điều này có nghĩa là dữ liệu có thể được sao chép hoặc không và được duy trì trong tất cả các bản sao nhưng vẫn có sẵn trong bản sao trực tiếp của cơ sở dữ liệu.
có sẵn. Truy vấn trả về dữ liệu từ phiên bản mà không đảm bảo rằng dữ liệu đã được ghi vào phần lớn các thành viên của bộ bản sao (i. e. có thể được khôi phục).
Đây là giá trị mặc định cho các lần đọc so với các phần thứ hai nếu các lần đọc không được liên kết với các phiên nhất quán theo nguyên nhân.
đa số. Truy vấn trả về dữ liệu đã được đa số thành viên bộ bản sao thừa nhận. Các tài liệu được trả về bởi thao tác đọc có độ bền cao, ngay cả trong trường hợp bị lỗi. Tùy chọn này về cơ bản trả về các tài liệu được ghi trên phần lớn các thành viên của bộ bản sao và do đó được cho là nhất quán hơn.
tuyến tính hóa. Đây là loại mối quan tâm đọc thứ tư có thể được chỉ định. Đây là mức đọc chỉ trả về các bản ghi. Loại cấp độ đọc này chờ quá trình ghi đang diễn ra đồng thời được ghi vào các bộ bản sao tương ứng và chỉ sau đó mới trả về dữ liệu. Điều này, mức độ đọc như vậy là thích hợp hơn trong một môi trường có tính nhất quán dữ liệu cao là rất quan trọng.
ảnh chụp nhanh. Đây là loại cấp độ đọc cuối cùng có thể được chỉ định. Chế độ này chỉ khả dụng cho các giao dịch nhiều tài liệu. Nếu một giao dịch không phải là một phần của các phiên nhất quán ngẫu nhiên, dữ liệu được ghi với phần lớn mức độ quan tâm ghi sẽ được ghi vào ảnh chụp nhanh cơ sở dữ liệu khi cam kết. Do đó, mức độ quan tâm đã đọc này trả về dữ liệu chủ yếu được cam kết và sẽ không bị khôi phục trong bất kỳ trường hợp nào.
Các tham số này cũng có thể được chỉ định theo cách tương tự như các tham số nhóm kết nối được hiển thị ở trên.

5. 3 tùy chọn xác thực

Tập hợp các tùy chọn tiếp theo là các tùy chọn xác thực cho cơ sở dữ liệu. Các tham số đầu tiên là nguồn xác thực.
authSource. Nguồn xác thực cho cơ sở dữ liệu có thể là bất kỳ thứ gì từ LDAP đến Kerberos đến xác thực dựa trên cơ sở dữ liệu. Để chỉ định xác thực dựa trên cơ sở dữ liệu, tham số này có thể được gán tên của cơ sở dữ liệu sẽ được sử dụng để xác thực. Trong trường hợp các phương thức bên ngoài được sử dụng để xác thực, giá trị tham số được truyền sẽ là

mongodb://root:[email protected]:27017/databasename
2.
Cơ chế xác thực. Tham số được sử dụng để chỉ định cơ chế xác thực sẽ được sử dụng cho mục đích xác thực. Giá trị của tham số sẽ là một trong các phương thức mã hóa được liệt kê bên dưới.

  • SCRAM-SHA-1
  • SCRAM-SHA-256 (Đã thêm vào MongoDB 4. 0)
  • MONGODB-CR (Đã xóa trong MongoDB 4. 0)
  • MONGODB-X509
  • GSSAPI (Kerberos)
  • ĐỒNG BẰNG (LDAP SASL)

gssapiTên dịch vụ. Đặt tên dịch vụ Kerberos khi kết nối với các phiên bản Kerberized MongoDB. Giá trị này phải khớp với tên dịch vụ được đặt trên các phiên bản MongoDB. Giá trị mặc định của tên dịch vụ là mongodb cho tất cả các máy khách và phiên bản MongoDB trong đó tên dịch vụ không được chỉ định

6. Phần kết luận

Một chuỗi kết nối trong MongoDB có tầm quan trọng rất lớn khi định cấu hình các tham số kết nối. MongoDB nhận hầu hết các tham số cấu hình qua chuỗi kết nối và trình điều khiển cũng phân tích cú pháp chúng để xác định một số cấu hình mức kết nối. Chuỗi kết nối giúp giảm việc quản lý cấu hình thành một chuỗi duy nhất. Do đó, việc hiểu chuỗi kết nối MongoDB là rất quan trọng đối với các ứng dụng quy mô lớn

Làm cách nào để kết nối MongoDB bằng URI?

Kết nối với MongoDB qua Mongo URI .
Xác định vị trí triển khai MongoDB mục tiêu. Đăng nhập vào Control Panel và định vị ứng dụng mục tiêu của bạn
Tạo cơ sở dữ liệu và người dùng. Nhấp vào tab “DB và Người dùng” trong thanh menu. .
Tìm MongoDB URI. Nhấp vào tab “Tổng quan” trong thanh menu. .
Cài đặt PyMongo

MongoDB kết nối với xác thực như thế nào?

Cách bật xác thực trong MongoDB .
Tạo quản trị viên trong cơ sở dữ liệu quản trị với vai trò userAdminAnyDatabase. .
Ngắt kết nối khỏi vỏ mongo ( Ctrl+D )
Định vị đoạn mã sau trong tệp cấu hình mongod ( /etc/mongod. .
Thay đổi ủy quyền bị vô hiệu hóa thành được kích hoạt và lưu tệp

Làm cách nào để kết nối với cơ sở dữ liệu MongoDB?

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 máy chủ từ xa như thế nào?

Kết nối với Triển khai trên Máy chủ Từ xa . Chuỗi kết nối với máy chủ và cổng đã chọn . Các tùy chọn dòng lệnh --host và --port. Nếu bạn bỏ qua tùy chọn --port, mongosh sử dụng cổng mặc định 27017.