Next.js - [MongoDB] 설치, 연동

TH_velog·2024년 4월 4일
0

MongoDB

목록 보기
1/2
post-thumbnail

✍️ 기록용

📌 MongoDB

몽고DB(MongoDB←HUMONGOUS)는 크로스 플랫폼 도큐먼트 지향 데이터베이스 시스템이다.

  • MongoDB는 NoSQL 데이터베이스 솔루션으로, 관계형 데이터베이스 관리 시스템(RDBMS)을 필요로하지 않습니다.
  • 사용자가 다양한 유형의 데이터를 손쉽게 저장하고 쿼리할 수 있는 유연한 데이터 저장 모델을 제공합니다.
  • 몽고DB는 JSON과 유사한 동적 스키마형 문서들을 선호합니다.

🔗MongoDB

📖 회원 가입 - 무료 시작

✅간편하게 구글로 회원가입

✅ 완료!

✅ DB접속용 user 생성하기

✅ 아이디 비번 설정!

✅ 사용자 역할 선택에서 Atlas admin 선택 후 완료!!

✅ 추가된 것을 확인할 수 있습니다.

✅ 네트워크 액세스 추가 된 IP 에서만 접속이 가능하도록 설정.

✅ 테스트용으로 사용을 위해 ALLOW ACCESS FROM ANYWHERE 클릭하면
0.0.0.0/0 자동 추가가 됩니다.

테스트 설정 끝!

📗 Collection Document 확인 및 생성

📍 collections 확인 및 찾기

✅ 처음 회원가입 시 샘플 데이터 체크가 되었다면 위와 같이 샘플로 이미 제공된 것을 확인할 수 있습니다!

✅ 새로운 Database 생성

📍 Collection

  • MongoDB의 Collection은 다큐먼트들의 그룹입니다.
  • 다큐먼트들은 비슷한 유형의 데이터를 저장하고 관리하는데 사용합니다.

Database name: velog
Collection name : test

✅ Insert Document 버튼을 클릭하여

  • _id: 기본으로 제공
  • 사용할 데이터 -> collection 내 document 생성
  • 쓰레기통: 삭제 / + : 데이터를 추가할 수 있습니다.

📗 설치, 연동

npm install mongodb

📍 MongoDB URL 찾기

✅ Database 👉 Connect

✅ Drivers 👉 url을 확인할 수 있으며 대신 설정한 비밀번호 입력!
※ 비밀번호는 database에서 추가한 정보의 비밀번호

📘 mongodb 연결

// util/mongodb.js
import { MongoClient } from 'mongodb'

const url = 'mongoDB url'; // 개인 url 👈
let myConnectDB

// 🌟 NextJS 파일 저장 시 JS 파일을 다시 실행하기에 아래와 같이
// 개발 중 재실행 막는다.
if (process.env.NODE_ENV === 'development') {
  // global 사용. 
  if (!global._mongo) {
    global._mongo = new MongoClient(url).connect()
  }
  myConnectDB = global._mongo
} else {
  myConnectDB = new MongoClient(url).connect()
}
export { myConnectDB }

✅ 파일을 만들어서 위와 같이 입력!

📍URL 참고
✔️ ID : velogTest
✔️ PW : abcd1234


👆 mongodb 만들어 놓은 database velog, collection test
// app/page.js
import { myConnectDB } from "@/api/mongodb";

export default async function Home() {
  // 👇 데이터베이스 - velog
  const db = (await myConnectDB).db('velog');
  // 👇 collection - test
  const testDB = await db.collection('test').find().toArray(); 

  return (
    <div>
      {testDB[0].title}
    </div>
  );
}

✅ velog database의 test collection document 가져오기

✅ 기존에 입력한 document 값 확인!!

감사합니다. 😁

profile
공부&기록

0개의 댓글