데이터베이스 이해와 실습 관련 오류 질문
203
작성한 질문수 1
안녕하세요~
데이터베이스 이해와 실습 CRUD 실습을 진행하다가
오류로 인하여 다음차시 진행이 불가하여 질문드립니다.
PS C:\Users\폴더이름\Desktop\database> node db.js
Error: querySrv ENOTFOUND _mongodb._tcp.cluster0.mongodb.net
at QueryReqWrap.onresolve [as oncomplete] (node:internal/dns/promises:291:17) {
errno: undefined,
code: 'ENOTFOUND',
syscall: 'querySrv',
hostname: '_mongodb._tcp.cluster0.mongodb.net'
관련하여 챗GPT에 오류 내용을 검색해본 후 원인 및 해결방법에 대해 아래 내용을 얻을 수 있었는데요
인터넷 연결 확인:
인터넷 연결이 정상적으로 이루어지고 있는지 확인하세요. 특히, 네트워크에 제한이 있거나 프록시 서버를 사용하는 경우 문제가 발생할 수 있습니다.
DNS 설정 문제:
DNS 설정 문제로 인해
_mongodb._tcp.cluster0.mongodb.net도메인이 해결되지 않을 수 있습니다. DNS 서버를 Google Public DNS(8.8.8.8, 8.8.4.4)로 변경하여 문제가 해결되는지 확인해보세요.
Windows에서 DNS 설정 변경 방법:
제어판 > 네트워크 및 인터넷 > 네트워크 및 공유 센터 > 어댑터 설정 변경으로 이동합니다.
사용 중인 네트워크 연결을 마우스 오른쪽 버튼으로 클릭하고
속성을 선택합니다.인터넷 프로토콜 버전 4 (TCP/IPv4)를 선택한 후속성을 클릭합니다.하단에 있는
다음 DNS 서버 주소 사용을 선택하고,8.8.8.8과8.8.4.4를 입력합니다.설정을 저장하고 다시 시도해보세요.
MongoDB Atlas의 클러스터 주소 확인:
useUnifiedTopology옵션 사용:최신 버전의 MongoDB 드라이버를 사용하고 있는지 확인하고,
useUnifiedTopology옵션이 활성화되어 있는지 확인하세요.
javascript코드 복사
const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });방화벽 또는 네트워크 제한:
회사 네트워크나 특정 ISP에서 DNS 쿼리 또는 MongoDB Atlas에 대한 연결을 제한할 수 있습니다. 이런 경우, 다른 네트워크(예: 휴대폰 핫스팟)에서 시도해보거나, 네트워크 관리자에게 문의하세요.
SRV 레코드 대신 표준 연결 문자열 사용:
SRV 레코드(
mongodb+srv://) 대신 표준 MongoDB 연결 문자열(mongodb://)을 시도해보세요. SRV 레코드를 지원하지 않는 네트워크 환경에서 표준 연결이 문제를 해결할 수 있습니다.
현재 회사에서 지급한 노트북으로 진행하여 보안상 문제가 있어 작업이 불가한건지..
위 내용을 읽어봐도 명확하지 않아 질문드립니다.
답변 1
0
안녕하세요

현재 DB쪽 강의를 대부분 수강하신 것으로 보이는데 어디부터 안되시는걸까요?
1. 처음 Atlas를 가입하시고 Create부터 안되시나요?
2. 사용하신 코드를 전체 복사해서 공유해주시겠어요?
3. Atlas 설정 화면을 스크린샷으로 가능하면 모든 페이지를 공유해주세요~
0
create 부터 되지 않습니다!
사용한 코드 첨부드립니다.
const { MongoClient, ServerApiVersion } = require('mongodb'); const uri = "mongodb+srv://yejikim27:비밀번호@cluster0.mongodb.net/mydatabase?retryWrites=true&w=majority"; // 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, } }); // CRUD // C -> Create -> 만들기 // R -> Read -> 가져오기(읽기) // U -> Update -> 업데이트 // D -> Delete -> 삭제 async function run() { try { // Connect the client to the server (optional starting in v4.7) await client.connect(); // await createSingleDocument(); await createManyDocument(); } finally { // Ensures that the client will close when you finish/error await client.close(); } } run().catch(console.dir); async function createSingleDocument() { const exampleData = { name : "이름", age : 30, city : "도시" }; try { const collection = client.db("myDBName").collection("myDBCollection"); const result = await collection.insertOne(exampleData); console.log('문서 추가 성공', result) } catch(error) { console.log('문서 추가 실패', error); } } async function createManyDocument() { const exampleData = [ { name: "김철수", age: 30, city: "서울" }, { name: "박지영", age: 25, city: "부산" }, { name: "이민수", age: 40, city: "인천" }, { name: "최연희", age: 35, city: "대구" }, { name: "김성현", age: 20, city: "광주" }, { name: "박지수", age: 27, city: "대전" }, { name: "이정민", age: 32, city: "울산" }, { name: "최민지", age: 29, city: "세종" }, { name: "김현수", age: 45, city: "경기" }, { name: "박민정", age: 38, city: "강원" }, ]; try { const collection = client.db("myDBName").collection("myDBCollection"); const result = await collection.insertMany(exampleData); console.log('문서 추가 성공', result) } catch(error) { console.log('문서 추가 실패', error); } }Atlas 설정화면 공유드립니다.




0
혹시 이 부분 "비밀번호"도 설정한 비밀번호로 바꾸신게 맞으시겠죠?
const uri = "mongodb+srv://yejikim27:비밀번호@cluster0.mongodb.net/mydatabase?retryWrites=true&w=majority";
0
여기에서 connect버튼을 누르셔서

Drivers를 클릭하시면

3.복사해서 사용할 수 있는 코드들이 쭉 나올겁니다
이 코드를 복사해서 공유해주시겠어요?
(이 영역의 코드 모두를 공유해주세요~)
0
전달드립니다!!
const { MongoClient, ServerApiVersion } = require('mongodb');
const uri = "mongodb+srv://yejikim27:<db_password>@cluster0.nh4rq.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0";
// 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);
1
const { MongoClient, ServerApiVersion } = require('mongodb');
const uri = "mongodb+srv://yejikim27:<비밀번호>@cluster0.nh4rq.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0";
// 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,
}
});
// CRUD
// C -> Create -> 만들기
// R -> Read -> 가져오기(읽기)
// U -> Update -> 업데이트
// D -> Delete -> 삭제
async function run() {
try {
// Connect the client to the server (optional starting in v4.7)
await client.connect();
// await createSingleDocument();
await createManyDocument();
} finally {
// Ensures that the client will close when you finish/error
await client.close();
}
}
run().catch(console.dir);
async function createSingleDocument() {
const exampleData = {
name : "이름",
age : 30,
city : "도시"
};
try {
const collection = client.db("myDBName").collection("myDBCollection");
const result = await collection.insertOne(exampleData);
console.log('문서 추가 성공', result)
} catch(error) {
console.log('문서 추가 실패', error);
}
}
async function createManyDocument() {
const exampleData = [
{
name: "김철수",
age: 30,
city: "서울"
},
{
name: "박지영",
age: 25,
city: "부산"
},
{
name: "이민수",
age: 40,
city: "인천"
},
{
name: "최연희",
age: 35,
city: "대구"
},
{
name: "김성현",
age: 20,
city: "광주"
},
{
name: "박지수",
age: 27,
city: "대전"
},
{
name: "이정민",
age: 32,
city: "울산"
},
{
name: "최민지",
age: 29,
city: "세종"
},
{
name: "김현수",
age: 45,
city: "경기"
},
{
name: "박민정",
age: 38,
city: "강원"
},
];
try {
const collection = client.db("myDBName").collection("myDBCollection");
const result = await collection.insertMany(exampleData);
console.log('문서 추가 성공', result)
} catch(error) {
console.log('문서 추가 실패', error);
}
}uri 주소가 잘못되었던 것 같아요
방금 위에 올려주신 주소대로 해보면 잘 동작하는걸 확인했습니다
const uri = "<비밀번호>" 부분은 메일로 주신 비밀번호를 넣어서 해보시면 좋을 것 같아요~
74. 데이터 캐시 - 1 (이론) 강의 영상 누락
0
12
1
2강 nodejs 3단계 설명 질문
0
25
1
6-6 실습 문의
0
20
2
인가 코드 발급(프론트 vs 백)
0
23
2
imagesLoaded에 관한 질문
0
17
2
useEffect와 lifecycle문의
0
23
2
섹션5 노션링크 는 따로 없나요?
0
24
2
Part 4에서 강의 연관 노션 정보들이 워드파일에 없습니다.
0
31
2
첨부자료 Part 4 코드 확인 부탁드리겠습니다.
0
24
2
프론트엔드 학습 수준 문의
0
31
2
선생님 각 강좌마다 예시로 보여주시는 웹페이지들은 어디서
0
23
1
퍼플렉시티 최소 결제단위 50달러로 바뀐 것 같습니다.
0
46
2
리액트 챕터별 코드에서 eslint 설정파일이 없어요
0
46
2
router 생성부터 어딘가 막힘..
0
55
2
유저 정보 주는 API 생성 시 에러남
0
60
1
터미널에 값이 실행되지 않음
0
57
2
윈도우 vue cli 설치 안됨
0
60
2
StockList 만들기 중 404 ERR_BAD_REQUEST 에러
0
126
2
home 화면에 불러와지지 않아요!
0
85
1
npm 명령어 실행 안됨(윈도우)
0
1283
2
HomePage.vue에 작성한 내용이 화면엔 보이지 않습니다.
0
169
2
VUE CLI 설치 프로젝트 생성이 안됩니다
0
209
2
vue cli 설치 강의 중 오류
0
420
3
mongoDB에서의 데이터 중복일 때 1건만 수정되는 이유
0
228
1





