Mongodb 사용법
최초 작성 : 2025-09-13
최종 업데이트 : 2025-09-13
세팅
npm install mongodb
먼저 위와 같이 mongodb 라이브러리를 설치해야 한다.
const { MongoClient } = require('mongodb');
let db;
const url = 'DB 접속 URL';
new MongoClient(url).connect()
.then((client)=>{
console.log('DB 연결성공');
db = client.db('forum');
}).catch((err)=>{
console.log(err);
})
그 다음 server.js 파일 상단에 위의 코드를 추가한다. app.get(), app.listen()과 같은 부분은 then으로 호출하는 콜백 함수 안에 넣어주는 것이 좋다. (DB가 정상적으로 연결되었을 때 서버를 실행하기 위해서)
데이터 접근 단계
MongoDB에 접속해서 데이터를 가져오는 단계는 다음과 같다.
① MongoClient 생성
MongoClient(url)는 MongoDB 서버에 연결하기 위한 클라이언트 객체를 생성한다. url 안에는 클러스터에 접속하기 위한 id와 password가 담겨 있다.
mongodb+srv://<db_id>:<db_password>@cluster0.jea.mongodb.net/?retryWrites=true&w=majority
url은 위와 같이 생겼다. 이 값은 MongoDB에서 클러스터의 옆에 있는 Connect 버튼을 클릭하면 확인할 수 있다.
② 서버 연결
여기에 connect()를 하면 서버와 실제로 연결이 된다.
③ 데이터베이스 선택
db('<데이터베이스 이름>')는 데이터베이스를 선택한다.
④ 컬렉션 선택
collection('<컬렉션 이름>')함수는 컬렉션을 선택한다.
⑤ 쿼리 실행
find() 함수는 쿼리 조건에 따라 문서를 검색하고 커서를 반환한다. toArray()함수는 커서를 배열로 변환한다.
new MongoClient(url).connect()
.then((client)=>{
const db = client.db('<데이터베이스 이름>');
let data = db.collection('<컬렉션 이름>').find().toArray();
})
따라서, 위와 같은 코드를 짜면 data에는 컬렉션에 있는 모든 document의 자료가 저장된다. 컬렉션이 Array, 각 document는 Object 자료형이므로 자료를 꺼낼 때는 data[0], data[0].title 등으로 꺼내서 사용하면 된다.
EJS 사용법
데이터베이스에서 가져온 데이터를 html 파일 안에 넣어서 보내주고 싶을 때 (SSR 방식), 템플릿 엔진을 사용할 수 있다. 여러 종류가 있지만 가장 많이 쓰이고 쉬운 것은 EJS이다.
먼저 npm으로 EJS를 설치해줘야 한다.
npm install ejs
그 다음으로는, server.js 파일 상단에 ejs를 쓰기 위한 문법을 작성해줘야 한다.
app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs')는 Express에 템플릿 엔진을 지정해주는 코드이고, app.set('views', path.join(__dirname, 'views'))는 Express에 view의 위치를 알려 주는 코드이다. 이를 통해 .ejs 파일을 찾는 걸 간편하게 만든다.
폴더 구조에서 .ejs 파일은 view라는 이름의 폴더 안에 저장한다.