개요
MongoDB deployment에 연결하려면 다음 두 가지가 필요합니다.
연결 연결 문자열 이라고도 하는 연결 URI는 연결할 MongoDB deployment Node.js 운전자 에 알려줍니다.
MongoClient 객체 로, MongoDB deployment 에 대한 연결을 생성하고 작업을 수행합니다.
MongoClientOptions
를 사용하여 MongoDB 에 연결된 동안 Node.js 운전자 작동하는 방식을 사용자 지정할 수도 있습니다.
이 가이드에서는 연결 string 을 만들고 MongoClient
객체를 사용하여 MongoDB 에 연결하는 방법을 보여 줍니다.
연결 URI
표준 연결 string 에는 다음 구성 요소가 포함됩니다.
구성 요소 | 설명 |
---|---|
| 필수 사항입니다. 표준 연결 형식의 문자열로 식별하는 접두사입니다. |
| 선택 사항. 인증 자격 자격 증명. 이를 포함하면 클라이언트 |
| 필수입니다. MongoDB가 실행 중인 호스트 및 선택적 포트 번호입니다. 포트 번호를 포함하지 않으면 드라이버는 기본 포트인 |
| 선택 사항. 연결 문자열 |
| 선택 사항. 연결별 옵션을 |
연결 생성에 대한 자세한 string 내용은 MongoDB Server 설명서에서 연결 문자열 을 참조하세요.
Atlas 연결 예시
Atlas의 MongoDB deployment에 연결하려면 클라이언트를 만들어야 합니다. 클라이언트를 생성하려면 MongoClient
인스턴스를 구축하고 URI와 MongoClientOptions
객체를 전달합니다.
팁
클라이언트 재사용
각 MongoClient
는 데이터베이스 에 대한 연결 풀을 나타내므로 대부분의 애플리케이션은 여러 요청에 걸쳐 MongoClient
의 단일 인스턴스 만 필요로 합니다. 운전자 에서 연결 풀이 작동하는 방식에 대해 자세히 학습하려면 연결 풀 페이지를 참조하세요.
MongoClientOptions
객체의 serverApi
옵션을 사용하여 서버가 지정된 API 버전과 호환되는 동작으로 작업을 실행하도록 하는 Stable API 기능을 허용합니다.
다음 코드는 Atlas의 MongoDB deployment에 연결할 때 연결 문자열과 Stable API 클라이언트 옵션을 지정하고 연결이 성공했는지 확인하는 방법을 보여줍니다.
const { MongoClient, ServerApiVersion } = require("mongodb"); // Replace the placeholder with your Atlas connection string const uri = "<connection string>"; // Create 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 { // Connect the client to the server (optional starting in v4.7) await client.connect(); // Send 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);
참고
Node.js 드라이버는 클라이언트를 사용하여 MongoDB 배포에서 CRUD 작업을 수행할 때 MongoClient.connect()
메서드를 자동으로 호출합니다. 연결이 성공했는지 확인하려면 MongoClient.connect()
메서드를 명시적으로 호출합니다.
팁
명시적 리소스 관리
Node.js 운전자 MongoClient
기본적으로,, 및 커서에 대한 명시적 리소스 관리ClientSession
ChangeStreams
지원합니다. 이 기능 실험적이며 변경될 수 있습니다. 명시적 리소스 관리 사용하는 방법을 학습 v6.9 릴리스 노트 참조하세요.
Stable API 기능에 대해 자세히 알아보려면 Stable API 페이지를 참조하세요.
느린 작업으로 인한 다른 작업 지연 방지
동일한 MongoClient
인스턴스 사용하여 여러 MongoDB 작업을 동시에 실행 경우 작업 속도가 느려지면 다른 작업이 지연될 수 있습니다. 작업 속도가 느리면 MongoDB 에 대한 연결이 계속 점유되어 다른 연결을 사용할 수 있을 때까지 다른 작업이 대기할 수 있습니다.
느린 MongoDB 작업으로 인해 지연이 발생한다고 의심되는 경우, 다음 메서드를 사용하여 진행 중인 모든 작업의 성능을 확인할 수 있습니다.
배포에서 데이터베이스 프로파일러를 활성화합니다. 자세한 내용은 MongoDB Server 매뉴얼의 데이터베이스 프로파일러 를 참조하세요.
db.currentOp()
MongoDB Shell 명령을 실행합니다. 자세한 내용은 MongoDB Server 매뉴얼의 db.currentOp() 문서를 참조하세요.연결 풀 모니터링 활성화합니다. 자세한 학습 은 연결 풀 이벤트를 참조하세요.
지연을 유발하는 작업을 확인한 후 이러한 작업의 성능을 개선합니다. 가능한 해결책 은 MongoDB 성능 모범 사례 가이드를 참조 하세요.
성능 모범 사례를 구현했지만 여전히 지연이 발생하는 경우 연결 설정을 수정하여 연결 풀 크기를 늘릴 수 있습니다. 연결 풀은 드라이버가 언제든지 유지 관리하는 서버에 대한 연결 그룹입니다.
연결 풀의 최대 크기를 지정하려면 MongoClient
인스턴스의 연결 옵션에서 maxPoolSize
옵션을 설정하면 됩니다. maxPoolSize
의 기본값은 100
입니다. 서버에 대한 사용 중인 연결 수가 maxPoolSize
에 도달하면 드라이버에 대한 연결이 가능해질 때까지 서버로 전송되는 다음 작업이 일시 중지됩니다. 다음 코드는 새 MongoClient
를 만들 때 maxPoolSize
를 150
으로 설정합니다.
const client = new MongoClient(uri, { maxPoolSize: 150 });
팁
연결 풀링에 대해 자세히 학습하려면 연결 풀 페이지의 연결 풀 개요 섹션을 참조하세요.
API 문서
Node.js 운전자 사용하여 MongoClient
객체 만드는 방법에 대한 자세한 내용은 다음 API 설명서를 참조하세요.