- Published on
MongoDB
- Authors
- Name
- Inhwan Cho
데이터베이스 DB
데이터베이스는 전자적으로 저장되고 체계적인 데이터 모음입니다. 여기에는 단어, 숫자, 이미지, 비디오 및 파일을 포함한 모든 유형의 데이터가 포함될 수 있습니다.
DB에는 크게 2종류가 있습니다.
관계형 데이터베이스(Relational Database, SQL) ex) Amazon RDS, ORACLE, MySQL, PostgreSQL table(행과 열)을 사용하여 엑셀처럼 데이터를 한줄씩 입력. 단, 데이터 사용에 SQL문법을 사용해야하며, 중복데이터를 정규화해서 입력해야함 데이터 정확도가 중요한 경우 사용
비관계형 데이터베이스(NoSQL) 보다 자유로운 형식의 저장 방식. 대부분
JSON(key-value)
형태로 저장함 중복을 제거하고 저장하지 않아서 입출력을 빠르게할 수 있음.
DB에서 입출력은 유저가 직접하게 하면 안됩니다. 입출력 사이에 검열을 위한 필터(서버)가 필요합니다.
MongoDB
몽고DB는 비관계형 데이터베이스의 대표적인 DB입니다. 'document data'라고도 불리며, collection(엑셀-시트)을 하나 만들고 document(엑셀-행)을 만들어 document에 JSON(Object) 타입으로 데이터들을 저장하는 형식입니다.
import { MongoClient } from 'mongodb'
let db
// MongoDB에 연결.
const url = 'mongodb+srv://id:password@.......'
new MongoClient(url)
.connect()
.then((client) => {
console.log('MongoDB 연결 성공')
db = client.db('MongodbName') //데이터베이스 이름 입력
})
.catch((error) => {
console.log(error)
})
app.get('/', async (request, response) => {
//콜렉션에 모든 데이터 불러오기
let result = await db.collection('collectionName').find().toArray()
})
만약, MongoServerSelectionError ... Timeout error가 나온다면, 몽고DB 사이트 왼쪽에 Network Access
를 눌러서 해당 기기의 IP를 등록(재등록) 해주면 됩니다.
참고로 prisma와 mongoDB를 연결할때,
.env
DATABASE_URL="mongodb+srv://<YOURID>:<YOURPASSWORD>@cluster0.v1pcsxx.mongodb.net/<YOURPROJECTNAME>?retryWrites=true&w=majority"
// projectName은 mongodb atlas 왼쪽 위에 폴더 모양에서 확인 할 수 있습니다.