My Boundary As Much As I Experienced

express 상에서 MongoDB Atlas 사용하기 본문

BackEnd/Node.js

express 상에서 MongoDB Atlas 사용하기

Bumang 2024. 7. 7. 18:02

비관계형 데이터베이스는 거의 다

Project(프로젝트) - collection(폴더) - document(개별 파일)

구조로 되어있다.

 

몽고DB도 그러하다...

 

1. 프로젝트 만들기 

 

2. 클러스터 만들기

우측 상단 Create cluster를 누르면 된다.

 

원하는 모델을 선택하면 된다. 클러스터에 대해 알아보니 분산형 서버 관리 시스템? 같은 느낌인거 같다.

서버 컴퓨터의 성능을 선택하는듯 하다.

첫 2개는 무료 모델을 선택할 수 있게 해주는 것 같으니 연습용으로 쓸거면 무료모델을 쓰자.

 

3. connect를 눌러 baseUrl을 가져와라.

이때 url상에서 <password>라고 되어있는 부분이 있을텐데

이 곳에 몽고DB 회원가입할때 입력한 패스워드를 입력하면 된다.

 

 

4. 실제 코드로 연결하는 방법

그리고 실제 코드로 연결하는 방법이다.

MongoClienct를 임포트하여 생성자 함수에 3번에서 가져온 baseUrl을 주입해주면 된다.

then 체이닝으로 연결 성공했을 시에만 포트를 열어 서버를 시작하도록 했다.

const express = require("express");
const app = express();

const { MongoClient } = require("mongodb");

let db;
const url = "mongodb+srv://bove0729:...";
new MongoClient(url)
  .connect()
  .then((client) => {
    console.log("DB 연결 성공");
    db = client.db("forum");

    // 내 컴퓨터에서 포트 하나 오픈하는 코드..
    app.listen(8080, () => {
      console.log("http://localhost:8080에서 서버 실행 중");
    });
  })
  .catch((err) => {
    console.log(err);
  });

 

5. 데이터 입력하기 (post)

실제 데이터 입력은 아래처럼 한다.

콜랙션을 선택하고 insertOne 메소드로 Doc을 주입한다.

app.get("/news", (req, res) => {
  db.collection("post").insertOne({ title: "어쩌구" });
  res.send("뉴스");
});

 

5. 데이터 불러오기 (get)

콜랙션 내의 모든 문서를 찾을 땐 콜랙션에서 find로 모두 찾고 toArray로 배열화하여 가져온다.

app.get("/list", async (req, res) => {
  const col = db.collection("post");
  const doc = await col.find().toArray();
  console.log(doc, "doc");
});

 

하나 조회할 땐 findOne을 쓴다.

app.get("/list", async (req, res) => {
  const col = db.collection("post");
  const doc = await col.findOne({ name: "Bumang" });
  console.log(doc, "doc");
});