Kết nối MongoDB Compass ECONNREFUSED

Thông báo này cho thấy mongo của bạn bị ngắt kết nối. Do đó, bạn nên mở cmd của mình (Windows) Sau đó nhập `mongod và nhấn phím Enter. Sau vài phút, mongo sẽ được kết nối. Sau đó kết nối thông qua MongoDB Compass của bạn

Giải pháp liên quan

Sql – Cách truy vấn MongoDB bằng “like”

Đó sẽ phải là

db.users.find({"name": /.*m.*/})

Hoặc tương tự

db.users.find({"name": /m/})

Bạn đang tìm thứ gì đó có chứa "m" ở đâu đó (toán tử '

db.foo.find().sort({x:1});
3' của SQL tương đương với biểu thức chính quy' '
db.foo.find().sort({x:1});
4'), chứ không phải thứ có "m" neo vào đầu chuỗi

Ghi chú. MongoDB sử dụng các biểu thức chính quy mạnh hơn "THÍCH" trong SQL. Với các biểu thức chính quy, bạn có thể tạo bất kỳ mẫu nào mà bạn tưởng tượng

Để biết thêm thông tin về biểu thức chính quy, hãy tham khảo Biểu thức chính quy (MDN)

Mongodb – Cách lấy N bản ghi cuối cùng trong mongodb

Nếu tôi hiểu câu hỏi của bạn, bạn cần sắp xếp theo thứ tự tăng dần

Giả sử bạn có một số trường id hoặc ngày được gọi là "x", bạn sẽ làm gì

loại()


db.foo.find().sort({x:1});

1 sẽ sắp xếp tăng dần (cũ nhất đến mới nhất) và -1 sẽ sắp xếp giảm dần (mới nhất đến cũ nhất. )

Nếu bạn sử dụng trường _id được tạo tự động thì nó có một ngày được nhúng trong đó. vì vậy bạn có thể sử dụng nó để đặt hàng bằng cách

db.foo.find().sort({_id:1});

Điều đó sẽ trả lại tất cả các tài liệu của bạn được sắp xếp từ cũ nhất đến mới nhất

Trật tự tự nhiên


Bạn cũng có thể sử dụng Thứ tự tự nhiên được đề cập ở trên

db.foo.find().sort({$natural:1});

Một lần nữa, sử dụng 1 hoặc -1 tùy thuộc vào thứ tự bạn muốn

Sử dụng. giới hạn()


Cuối cùng, bạn nên thêm một giới hạn khi thực hiện loại truy vấn mở rộng này để bạn có thể thực hiện một trong hai

Nếu mongodb đang chạy, bạn sẽ nhận được hai dòng, nếu không, một dòng. Để bắt đầu quy trình

db.foo.find().sort({x:1});
5, chỉ cần chạy

$ mkdir $HOME/data
$ mongod --dbpath $HOME/data

Điều này giả định rằng

db.foo.find().sort({x:1});
5 đang trên đường đi của bạn. Để tải xuống và cài đặt
db.foo.find().sort({x:1});
5, hãy truy cập https. //www. mongodb. com/try/download/community và tải xuống gói cài đặt
cho MongoDB trên OSX (MacOS).

Hiện tại, các phiên bản serverless không hỗ trợ kết nối thông qua một số trình điều khiển hoặc phiên bản trình điều khiển nhất định. Để tìm hiểu thêm, hãy xem Giới hạn của Serverless Instance

Triển khai cơ sở dữ liệu Kết nối bị tắt

Nút Kết nối triển khai cơ sở dữ liệu của bạn có thể bị vô hiệu hóa nếu triển khai cơ sở dữ liệu của bạn ở trạng thái cung cấp. Triển khai cơ sở dữ liệu của bạn cần cung cấp khi nó được triển khai lần đầu tiên. Các cụm cũng phải cung cấp khi bạn tăng hoặc giảm quy mô của chúng. Quá trình cấp phép có thể mất tối đa 10 phút, sau đó nút Kết nối sẽ được bật.

Kết nối địa chỉ IP không có trong Danh sách truy cập IP

Trước khi kết nối với triển khai cơ sở dữ liệu Atlas của bạn, hãy kiểm tra xem bạn đã thêm địa chỉ IP của máy chủ lưu trữ vào dự án triển khai cơ sở dữ liệu của mình chưa. Atlas chỉ cho phép kết nối máy khách từ địa chỉ IP và

CIDR trong danh sách truy cập IP.

Xác thực triển khai cơ sở dữ liệu không thành công

Để kết nối với Atlas, bạn phải xác thực với người dùng cơ sở dữ liệu MongoDB. Để tạo người dùng cơ sở dữ liệu cho việc triển khai cơ sở dữ liệu của bạn, hãy xem Định cấu hình người dùng cơ sở dữ liệu

Phương pháp khả thi

Nếu bạn đã tạo người dùng và gặp sự cố khi xác thực, hãy thử cách sau

  • Kiểm tra xem bạn có đ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 không và bạn có đang kết nối với đúng cơ sở triển khai cơ sở dữ liệu không

  • Kiểm tra xem bạn đang chỉ định chính xác

    Cơ sở dữ liệu
    db.foo.find().sort({x:1});
    
    8 trong chuỗi kết nối của bạn
  • Nếu bạn có một ký tự đặc biệt trong mật khẩu của mình, hãy xem

Quá nhiều kết nối mở để triển khai cơ sở dữ liệu của bạn

Atlas đặt giới hạn cho các kết nối đến đồng thời để triển khai cơ sở dữ liệu. Đối với các cụm, điều này dựa trên cấp cụm. Nếu bạn cố kết nối khi đang ở giới hạn này, MongoDB sẽ hiển thị lỗi cho biết

db.foo.find().sort({x:1});
9

Để so sánh chi tiết các tầng cụm và các kết nối đồng thời tối đa của chúng, hãy xem

Phương pháp khả thi

  • Đóng mọi kết nối đang mở với việc triển khai cơ sở dữ liệu của bạn hiện không được sử dụng

  • Mở rộng cụm của bạn lên cấp cao hơn để hỗ trợ nhiều kết nối đồng thời hơn

  • Khởi động lại ứng dụng của bạn

  • Để ngăn sự cố này xảy ra trong tương lai, hãy cân nhắc sử dụng tùy chọn chuỗi kết nối để giới hạn số lượng kết nối trong nhóm kết nối

Để tìm hiểu cách khắc phục sự cố này, hãy xem Khắc phục sự cố kết nối

Cố gắng kết nối từ phía sau tường lửa

Kết nối với giao diện người dùng Atlas

Atlas sử dụng CDN để cung cấp nội dung một cách nhanh chóng. Nếu tổ chức của bạn sử dụng tường lửa, hãy thêm máy chủ Atlas CDN sau vào danh sách cho phép của tường lửa để ngăn các sự cố khi truy cập vào giao diện người dùng Atlas.

db.foo.find().sort({_id:1});
0.

Kết nối với triển khai cơ sở dữ liệu

Triển khai cơ sở dữ liệu Atlas hoạt động trên cổng

db.foo.find().sort({_id:1});
1. Bạn phải có thể truy cập cổng này để kết nối với việc triển khai cơ sở dữ liệu của mình. Ngoài ra, hãy đảm bảo rằng các cổng thích hợp được mở cho các mục sau

  • Đối với các cụm được phân đoạn, hãy cấp quyền truy cập vào cổng 27016

  • Đối với Trình kết nối BI, hãy cấp quyền truy cập vào cổng 27015

Bạn có thể kiểm tra khả năng tiếp cận cổng của mình bằng cách sử dụng Trình kiểm tra cổng đi của bên thứ ba.

Ví dụ

Để kiểm tra khả năng tiếp cận cổng 27017 của bạn, hãy truy cập http. //portquiz. bọc lưới. 27017.

Nếu bạn không thể truy cập các cổng này, hãy kiểm tra cài đặt tường lửa hệ thống của bạn và đảm bảo rằng chúng không chặn quyền truy cập vào các cổng này

Khả năng triển khai cơ sở dữ liệu

Nếu bạn đang sử dụng chuỗi kết nối

p%40ssw0rd%279%27%21
0 connection string và trình điều khiển hoặc trình bao của bạn không thể tìm thấy máy chủ DNS của triển khai cơ sở dữ liệu Atlas, . Kiểm tra xem việc triển khai cơ sở dữ liệu có tồn tại không. Nếu đây là cụm bị tạm dừng, bạn có thể cụm nếu cần.

Ghi chú

Atlas tự động tạm dừng các cụm

p%40ssw0rd%279%27%21
1 không hoạt động sau 60 ngày không có kết nối

Khắc phục sự cố la bàn MongoDB

Nếu bạn sử dụng MongoDB Compass để kết nối với cụm của mình và gặp sự cố, hãy xem

  • trong phần này

  • Lỗi kết nối la bàn trong tài liệu La bàn MongoDB.

Nếu bạn sử dụng một hoặc một X được tạo tự động. 509 do Atlas quản lý để xác thực với cơ sở dữ liệu MongoDB, khi kết nối với MongoDB Compass, bạn phải.

  1. Trong MongoDB Compass, chọn Điền riêng từng trường kết nối .

  2. Trong trình đơn thả xuống Xác thực , hãy chọn

    p%40ssw0rd%279%27%21
    2.

  3. Chọn Tùy chọn khác .

  4. Trong trình đơn thả xuống SSL , chọn Xác thực máy chủ và máy khách.

  5. Thêm cùng một đường dẫn vào chứng chỉ do Atlas quản lý đã tải xuống hoặc chứng chỉ tự quản lý (tùy thuộc vào loại bạn sử dụng) vào từng trường trong số này. Cơ quan cấp chứng chỉ , Chứng chỉ ứng dụng kháchClient Private Key.

Để tìm hiểu thêm, hãy xem Kết nối với MongoDB trong tài liệu La bàn MongoDB.

Các vấn đề về chuỗi kết nối

Định dạng chuỗi kết nối không chính xác

Định dạng chuỗi kết nối connection string format mà bạn sử dụng để kết nối với Atlas phụ thuộc vào một số yếu tố, bao gồm.

  • phiên bản của bạn. Để tìm hiểu thêm, hãy xem Kết nối qua

    p%40ssw0rd%279%27%21
    3

  • Phiên bản trình điều khiển của bạn. Để tìm hiểu thêm, hãy xem Kết nối qua Ứng dụng của bạn

Xác minh chuỗi kết nối của bạn trong môi trường thử nghiệm trước khi đưa vào sản xuất

Các ký tự đặc biệt trong mật khẩu chuỗi kết nối

Nếu mật khẩu của bạn bao gồm các ký tự đặc biệt và bạn đang sử dụng mật khẩu của mình trong URI chuỗi kết nối, hãy mã hóa các ký tự đặc biệt

Ghi chú

Các ký tự sau phải được chuyển đổi bằng if được bao gồm trong tên người dùng hoặc mật khẩu

db.users.find({"name": /m/})
0

Ví dụ: nếu mật khẩu của bạn ở dạng văn bản thuần túy là

p%40ssw0rd%279%27%21
5, bạn cần mã hóa mật khẩu của mình dưới dạng

p%40ssw0rd%279%27%21


➤ Sử dụng trình đơn thả xuống Chọn ngôn ngữ của bạn để đặt ngôn ngữ của ví dụ mã hóa trong phần này


Quan trọng

Không mã hóa các ký tự đặc biệt trong mật khẩu của bạn nếu bạn đang sử dụng mật khẩu của mình bên ngoài URI chuỗi kết nối (ví dụ: dán mật khẩu đó vào )

Chuỗi kết nối không tương thích với phiên bản trình điều khiển

Nếu bạn thấy thông báo lỗi này, có thể trình điều khiển của bạn đã lỗi thời. Để biết hướng dẫn cập nhật trình điều khiển của bạn, hãy tham khảo Tài liệu trình điều khiển cụ thể của bạn.

Nhà cung cấp dịch vụ Internet Chặn chuỗi kết nối DNS

Khi bạn sử dụng để kết nối với Atlas, bạn có thể thấy lỗi sau

db.users.find({"name": /m/})
3

Lỗi này có thể xảy ra khi sử dụng máy chủ DNS mặc định mà ISP provides. That DNS đó có thể không hỗ trợ SRV tra cứu mà DNS seed list connection string format uses.

Để giải quyết sự cố, bạn có thể thử thay đổi cấu hình DNS của mình để sử dụng máy chủ DNS công cộng.

Ví dụ

Bạn có thể định cấu hình cài đặt mạng của mình để sử dụng Google Public DNS thay vì ISP's DNS servers.

Sau khi bạn cập nhật cài đặt mạng của mình để sử dụng máy chủ DNS công cộng,

Lỗi chuỗi kết nối với Công cụ DB trên Ubuntu 18. 04

Nếu chạy Ubuntu 18. 04 và sử dụng định dạng (

p%40ssw0rd%279%27%21
0) để kết nối với Atlas từ một trong Công cụ cơ sở dữ liệu MongoDB (
p%40ssw0rd%279%27%21
8,
p%40ssw0rd%279%27%21
9, v.v.), bạn có thể thấy thông tin sau .

db.users.find({"name": /m/})
7

Nếu vậy, hãy sử dụng một trong các tùy chọn kết nối sau để thay thế

  • sử dụng tùy chọn

    db.users.find({"name": /m/})
    
    30 với (
    db.users.find({"name": /m/})
    
    31)

  • sử dụng tùy chọn

    db.users.find({"name": /m/})
    
    32 để chỉ định máy chủ để kết nối

Kết nối bị từ chối sử dụng Chuỗi kết nối SRV

Khi sử dụng định dạng (

p%40ssw0rd%279%27%21
0) với trình điều khiển hoặc La bàn, bạn có thể nhận được lỗi sau

db.foo.find().sort({x:1});
2

Để khắc phục sự cố này, hãy sử dụng Compass hoặc trình điều khiển đó. Với La bàn, không đặt giá trị Bản ghi SRV, thay vào đó hãy đặt giá trị Tên máy chủ và Cổng

Tại sao la bàn MongoDB không kết nối?

Đảm bảo Phiên bản MongoDB của bạn đang chạy . Đảm bảo rằng bạn đã cài đặt MongoDB và có tiến trình mongod đang chạy. Bạn cũng nên kiểm tra xem cổng mà phiên bản MongoDB của bạn đang chạy có khớp với cổng mà bạn cung cấp trong hộp thoại Compass connect không.

La bàn MongoDB kết nối với máy chủ từ xa như thế nào?

Màn hình thiết lập kết nối Compass giúp bạn dễ dàng kết nối với máy chủ từ xa. Điều duy nhất bạn cần thay đổi là địa chỉ localhost. Thay vào đó, hãy nhập địa chỉ IP của máy chủ lưu trữ MongoDB rồi nhấp vào Kết nối .

Làm cách nào để kết nối MongoDB Compass với Node js?

Cách tiếp cận. - .
Đầu tiên, khởi tạo nút. js trong thư mục cụ thể trong máy của bạn
cài đặt các mô-đun nút trong thư mục dự án
Sau đó, tạo một kết nối đến cơ sở dữ liệu

Tại sao MongoDB của tôi không kết nối?

Nếu bạn đã tạo người dùng và gặp sự cố khi xác thực, hãy thử cách sau. Kiểm tra xem bạn có đ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 không và bạn có đang kết nối với đúng cơ sở triển khai cơ sở dữ liệu không . Kiểm tra xem bạn có đang chỉ định đúng cơ sở dữ liệu authSource trong chuỗi kết nối của mình không.