개요
이 가이드 에서는 연결 string 과 MongoClient
객체 를 사용하여 다양한 유형의 MongoDB deployment에 연결하는 방법을 학습 수 있습니다.
팁
연결 문자열 조회 방법에 대해 자세히 학습 Atlas 문서에서Connect via Drivers(드라이버를 통한 연결) 가이드 참조하세요.
Atlas
MongoDB 에서 deployment에 Atlas 연결하려면 연결 에 다음 요소를 string 포함하세요.
Atlas cluster의 URL
MongoDB 사용자 이름
MongoDB 비밀번호
그런 다음 연결 string 을 MongoClient
생성자에 전달합니다.
Atlas 에 연결할 때 Stable API 클라이언트 옵션을 사용하여 Atlas 를 새 버전의 MongoDB Server 로 업그레이드할 때 호환성이 손상되는 변경을 방지하는 것이 좋습니다. Stable API 기능 에 학습 보려면 Stable API 가이드 를 참조하세요.
다음 코드는 Node.js 운전자 사용하여 Atlas cluster 에 연결하는 방법을 보여줍니다. 또한 이 코드는 server_api
필드 사용하여 Stable API 버전을 지정합니다.
const { MongoClient, ServerApiVersion } = require("mongodb"); // Replace the placeholder with your Atlas connection string const uri = "<connection string>"; // Creates a MongoClient with a MongoClientOptions object to set the Stable API version const client = new MongoClient(uri, { serverApi: { version: ServerApiVersion.v1, strict: true, deprecationErrors: true, } } ); async function run() { try { // Connects the client to the server (optional starting in v4.7) await client.connect(); // Sends a ping to confirm a successful connection await client.db("admin").command({ ping: 1 }); console.log("Pinged your deployment. You successfully connected to MongoDB!"); } finally { // Ensures that the client will close when you finish/error await client.close(); } } run().catch(console.dir);
로컬 배포
로컬 독립형 MongoDB deployment 서버 의 호스팅하다 지정합니다. 선택적으로 서버 의 포트를 지정합니다. 포트를 지정하지 않으면 기본값 포트는 27017
입니다.
다음 코드와 같이 연결 문자열 사용하여 연결할 호스팅하다 와 포트를 지정할 수 있습니다.
const client = new MongoClient("mongodb://host1:27017");
호스팅하다 localhost
(으)로 지정할 수도 있습니다. 다음 코드 예시 지정된 포트의 localhost
에 연결합니다.
const client = new MongoClient("mongodb://localhost:27017");
복제본 세트
복제본 세트 에 연결하려면 복제본 세트 의 일부인 모든 노드를 지정하는 것이 좋습니다. 하나 이상의 노드를 사용할 수 없게 되는 경우 모든 노드를 지정하면 하나의 노드 사용할 수 있는 경우 운전자 복제본 세트 에 계속 연결할 수 있습니다.
그러나 복제본 세트 에 있는 한 노드 의 주소 를 운전자 에 전달하는 것으로 충분합니다. 노드 프라이머리 일 필요는 없으며 숨겨진 노드 일 수 있습니다. 그러면 운전자 나머지 노드를 자동으로 검색합니다.
다음 예시 연결 문자열 사용하여 복제본 세트 에 연결하는 방법과 replicaSet
연결 문자열 옵션을 사용하여 연결 시 복제본 세트 이름을 확인하는 방법을 보여 줍니다.
const client = new MongoClient("mongodb://host1:27017,host2:27017,host3:27017/?replicaSet=myRs");
참고
Docker에서의 복제본 세트
복제본 세트 Docker 에서 실행되면 MongoDB 엔드포인트를 하나만 노출할 수 있습니다. 이 경우 복제본 세트 검색할 수 없습니다. 연결 URI에 directConnection=false
을(를) 지정하거나 이 옵션을 설정하지 않은 상태로 두면 애플리케이션 연결 URI에 연결되지 않을 수 있습니다.
테스트 또는 개발 환경에서 directConnection=true
를 지정하여 복제본 세트에 연결할 수 있습니다. 프로덕션 환경에서는 Docker 가상 네트워크 외부에서 각 MongoDB 인스턴스에 액세스할 수 있도록 클러스터를 구성하는 것이 좋습니다.
DNS 서비스 검색
DNS 서비스 검색을 사용하여 연결하려는 서비스의 DNS SRV 기록 조회하려면 연결 문자열 에 SRV 연결 형식을 지정합니다. 이 형식을 지정하면 Node.js 운전자 새 호스트를 자동으로 다시 스캔합니다. 배포서버 클라이언트 구성을 변경하지 않고도 토폴로지 에 호스트를 추가할 수 있습니다.
다음 코드는 SRV 연결 형식을 사용하는 연결 문자열 보여줍니다.
const uri = "mongodb+srv://<hostname>/"
SRV 연결 형식에 대해 자세히 학습 MongoDB Server 매뉴얼의 SRV 연결 형식 항목을 참조하세요.
API 문서
Node.js 운전자 사용하여 MongoClient
객체 만드는 방법에 대해 자세히 학습하려면 MongoClient에 대한 API 설명서를 참조하세요.