개요
이 가이드 에서는 연결 string 과 Mongo::Client
객체 를 사용하여 다양한 유형의 MongoDB deployment에 연결하는 방법을 학습 수 있습니다.
Atlas
MongoDB 에서 deployment에 Atlas 연결하려면 연결 에 다음 요소를 string 포함하세요.
Atlas cluster의 URL
MongoDB 사용자 이름
MongoDB 비밀번호
그런 다음 연결 string 을 Mongo::Client
생성자에 전달합니다.
팁
Atlas 드라이버 연결 가이드 에 따라 연결 string 을 검색합니다.
Atlas 에 연결할 때 Stable API 클라이언트 옵션을 사용하여 Atlas 를 새 버전의 MongoDB Server 로 업그레이드할 때 호환성이 손상되는 변경을 방지하는 것이 좋습니다. Stable API 기능 에 학습 보려면 Stable API 가이드 를 참조하세요.
다음 코드는 Ruby 운전자 사용하여 Atlas cluster 에 연결하는 방법을 보여줍니다. 또한 이 코드는 server_api
필드 사용하여 Stable API 버전을 지정합니다.
require 'mongo' # Replace the placeholders with your credentials uri = "<connection string>" # Sets the server_api field of the options object to Stable API version 1 options = { server_api: { version: '1' } } # Creates a new client and connect to the server client = Mongo::Client.new(uri, options) # Sends a ping to confirm a successful connection begin admin_client = client.use('admin') result = admin_client.database.command(ping: 1).documents.first puts "Pinged your deployment. You successfully connected to MongoDB!" rescue Mongo::Error::OperationFailure => ex puts ex ensure client.close end
로컬 배포
로컬 독립형 MongoDB deployment 서버 의 호스팅하다 지정합니다. 선택적으로 연결할 서버 및 데이터베이스 의 포트를 지정합니다. 포트를 지정하지 않으면 기본값 포트는 27017
입니다. 데이터베이스 이름을 지정하지 않으면 클라이언트 admin
데이터베이스 사용합니다.
Mongo::Client.new([ 'host1:27017' ], database: 'mydb')
연결 문자열 사용하여 연결할 호스팅하다, 포트 및 데이터베이스 지정할 수도 있습니다.
Mongo::Client.new("mongodb://host1:27017/mydb")
호스팅하다 localhost
(으)로 지정할 수도 있습니다. 다음 코드 예시 기본값 포트인 27017
에서 localhost
에 연결합니다.
client = Mongo::Client.new(["localhost"])
복제본 세트
복제본 세트 에 연결하려면 복제본 세트 의 일부인 모든 노드를 지정하는 것이 좋습니다. 하나 이상의 노드를 사용할 수 없게 되는 이벤트 모든 노드를 지정하면 하나의 노드 사용할 수 있는 한 운전자 복제본 세트 에 계속 연결할 수 있습니다.
그러나 복제본 세트 에 있는 한 노드 의 주소 를 운전자 에 전달하는 것으로 충분합니다. 노드 프라이머리 일 필요는 없으며 숨겨진 노드 일 수 있습니다. 그러면 운전자 나머지 노드를 자동으로 검색합니다.
다음 예시 에서는 복제본 세트 의 세 멤버를 지정하는 방법을 보여줍니다.
Mongo::Client.new([ 'host1:27017', 'host2:27018', `host3:21019` ], database: 'mydb')
다음 예시 연결 문자열 사용하여 복제본 세트 에 연결하는 방법을 보여 줍니다.
Mongo::Client.new("mongodb://host1:27017,host2:27018,host3:27019/mydb")
다음 예시 replica_set
옵션 또는 replicaSet
연결 문자열 옵션을 사용하여 연결 시 복제본 세트 이름을 확인하는 방법을 보여 줍니다.
Mongo::Client.new([ 'host1:27017', 'host2:27018', 'host3:27019' ], database: 'mydb', replica_set: 'myapp') # Or by using a connection string: Mongo::Client.new("mongodb://host1:27017,host2:27018,host3:27019/mydb?replicaSet=myapp")
참고
Docker에서의 복제본 세트
복제본 세트 Docker 에서 실행되면 MongoDB 엔드포인트를 하나만 노출할 수 있습니다. 이 경우 복제본 세트 검색할 수 없습니다. 연결 URI에 directConnection=false
을(를) 지정하거나 이 옵션을 설정하지 않은 상태로 두면 애플리케이션 연결 URI에 연결되지 않을 수 있습니다.
테스트 또는 개발 환경에서 directConnection=true
를 지정하여 복제본 세트에 연결할 수 있습니다. 프로덕션 환경에서는 Docker 가상 네트워크 외부에서 각 MongoDB 인스턴스에 액세스할 수 있도록 클러스터를 구성하는 것이 좋습니다.
API 문서
Ruby 운전자 사용하여 Mongo::Client
객체 만드는 방법에 대해 자세히 학습하려면 Mongo::Client 에 대한 API 설명서를 참조하세요.