Next.js 기준 / Next.js 프로젝트에서 공부하면서 작성

내가 중요하게 봐야 될 곳은 여기
DB Access는 DB 사용자 계정? 관리인것 같고
Network Access는 접속 가능한 IP를 설정

Collection 으로 들어가면 내 DB 데이터를 미리 볼 수 있다
(MySQL에서)테이블같은건가? 했는데
생각해보니 이거 비관계형이니까 테이블은 아니지zㅋㅋㅋ;;

이걸로 DB 만들면 되고
collection / document 이거는 이런 거라고함

collection > 하나의 폴더
document > 하나의 메모장 파일같은거
그 안에 object 들(데이터) 기록
이렇게 들어가는 것
비관계형이니까 비교하기가 좀 그렇긴 하지만
이게 관계형에서의 하나의 열(rows)로 이해하면 될 거 같다 (아닐수도)??

insert는 여기서 할수있음

이런식으로 JSON처럼 생긴 데이터를 넣을 수 있다
필드 이렇게 추가하고
VSCode 터미널에서 npm install mongodb
const client = await MongoClient.connect('DB접속할 URL 링크~~', { useNewUrlParser: true })
const db = client.db("forum") // DB 이름
db.collection('abc').find() // abc 콜렉션에 있는 모든 데이터를 출력
이 URL 은 어딨음?

connect 누르고 connect to application


이거 복사하고 URL부분에 집어넣기
글고 아이디/비번 넣기

await 을 쓰려면 그 위에 함수에 async 를 붙여줘야한다

그래서 두개가 맨날 세트로 불리는 거였구나
근데 여기서 DB Connection은 서버 띄웠을 때 딱 한번만 해주면 되는 것이기 때문에
파일을 따로 분리

PHP - MySQL에서 했던거랑 방식은 똑같은듯!
import { MongoClient } from 'mongodb'
const url = 'DB접속URL~~'
const options = { useNewUrlParser: true }
let connectDB
if (process.env.NODE_ENV === 'development') {
if (!global._mongo) {
global._mongo = new MongoClient(url, options).connect()
}
connectDB = global._mongo
} else {
connectDB = new MongoClient(url, options).connect()
}
export { connectDB }
new MongoClient(url, options).connect() (else에 있는거)
이 코드를 변수에 담아서 export -> 갖다 쓸 데에서만 갖다 쓰는 것
매번 실행안해도 됨
근데 Next.js 의 특성인데
개발시 파일을 저장하면 모든 JS파일을 전부 다 다시 읽고 지나감
-> 그러면
connectDB = new MongoClient(url, options).connect()
그냥 이렇게만 쓰면 계속 읽고 지나가서 재실행이 되니까 그러지말라고 짜놓은 코드임
이제 connectDB 라는 변수를 쓰면됨
const client = await connectDB;
const db = client.db("forum")
let result = await db.collection('post').find().toArray()
// post 컬렉션에 있는 모든 데이터를 가져와서 Array 로 변환
console.log(result);