MongoDB) 계정 만들고 db 생성하고 CRUD 해보기

2023. 3. 3. 20:45개발/MongoDB

Chapter

2023.03.03 - [개발/MongoDB] - MongoDB) 계정 만들고 db 생성하고 CRUD 해보기

2023.03.03 - [개발/Node.js] - Node.js) 설치부터 REST API 만들어보기

2023.03.04 - [개발/Node.js] - Node.js) 비동기 프로그래밍 (Asynchronous Programming) 공부해보기

2023.03.04 - [개발/Node.js] - Node.js) MongoDB 접속 후 DB 다루기

 

 

참고

 

해당 내용은 강의를 기반으로 작성하였습니다. 
강의를 들으면 더욱 상세한 내용을 얻으실 수 있으니, 강의를 듣기를 권장합니다.
https://www.inflearn.com/course/%EB%AA%BD%EA%B3%A0%EB%94%94%EB%B9%84-%EA%B8%B0%EC%B4%88-%EC%8B%A4%EB%AC%B4/dashboard

과거 형태

- 새로고침 깜빡

-- 기존 프런트와 백엔드가 같이 붙어 있었음

 

현재 형태

프론트와 백엔드가 분리되어 있음

- 예전에는 화면이 바뀔 때마다 다 받아왔는데, 첫 방문할 때만 Front 관련한 코드 다 가져옴.

- 필요한 버튼을 누를 때는 새로운 데이터는 Front와 Backend와 통신함.

- 요즘은 Backend만 소통하는 것을 한다고 함.

 

이번 강의에서 주된 내용

필요한 데이터를 바로 Database로 해도 되나? 백엔드를 걸쳐야 하는 이유

바로 Database에 사용자가 접근하게 되면 엉망이 된다고 함.

아무나 계정 삭제 수정을 하게 될 수 있음.

- 형식에 맞게 수정이 되야함.

1. 관리의 목적

2. 인증의 목적

 

DB 관리하는 방법에 대해서 주로 논의

사용 방법

1. mongodb 사이트 접속하여 회원가입 또는 구글로 로그인

https://www.mongodb.com/

 

MongoDB: The Developer Data Platform

Get your ideas to market faster with a developer data platform built on the leading modern database. MongoDB makes working with data easy.

www.mongodb.com

2. project 생성 (무료로 하는 것 잘 보고하기)

project 이름 아무렇게나 만들기

초보니 일단 권한은 그냥 무시하고 넘어가기

database 만들기 (create 버튼 클릭)

돈이 없으니 꼭 Free를 선택하기

밑에 지역은 일단 아무거나...

클러스터 이름도 아무거나...

아이디와 패스워드 및 아이피 만들기

아이피를 이용해서 어디서나 접근 가능

다 만들면 connect 누르기

앞에 무슨 단계가 있던 것 같은데, 잘 넘어가시고 

connect 방법 선택하기 (MongoDB Compass 합시다)

필자는 아까 설치했으니 없는 분은 설치해주고 있으면 넘어가고 아래 url copy 하기

mongodb compass 설치 후 들어가서 connect 눌러서 들어가기

password는 아까 지정한 걸로 바꿔주기

 

아래 MongoSH를 눌러서 db 만들고 값 넣어보기

데이터를 넣어줘야 화면에 보임

CRUD

아래 코드들은 CRUD를 진행하고 다음과 같음.

- Create

- Read

- Update

- Delete

use blog
db.users
db.users.insrtOne({ name: "srlee", email : "hi@gmail.com"})
db.users.find()

화면 초기화 해주면 db에 적재됨

 

schemaless 특성을 이용해서 적재 가능함

- 형식이 달라도 다양하게 넣을 수 있다는 게 가장 큰 특징!

- 자유롭다는 게 관계형 데이터베이스랑은 가장 다른 큰 특징 

db.users.insertOne({ name: {first : "Elon" , last : "Musk" }})
반응형

 

# {} : 앞에 어떤 것을
# {} : 뒤에 어떤 것으로 업데이트 해준다
db.users.update({},{}) # (before, new)

일단 set이 뭔지는 모름...

db.users.updateOne({name:"srlee"} , {$set : {age : 30}}

 

java script 형식이라 name.first 이런 식으로 해야 한다고 함.

findOne 은 찾는 함수

db.users.findOne({"name.first" : "Elon"})

updateOne은 특정 한 개를 변경하는 함수

db.users.updateOne({"name.first" : "Elon"}, {$set : {"name.last" : "musk2"}})

이름은 매번 바뀔 수 있는 id로 찾으려면 다음과 같이 시도해 볼 수 있음. (4.2 버전)

db.users.findOne({_id : ObjectID("6401e72e3e8fe7073eb910ea")})
ReferenceError: ObjectID is not defined

업데이트가 되면서 기존 코드에서 안 되는 문제 있음 (5.0 버전)

아래처럼 하면 잘 작동함.

db.users.findOne({_id : ObjectId("6401e72e3e8fe7073eb910ea")})

아래 코드롤 사용하면 update 할 때 unique 하게 찾을 수 있고

$inc는 increase의 약자라고 함. 

즉 age를 하나 줄여라라는 뜻이 됨.

db.users.updateOne({_id : ObjectId("6401e72e3e8fe7073eb910ea")}, {$inc : {age:-1}})

 

db.users.deleteOne({_id : ObjectId("6401e72e3e8fe7073eb910ea")})
{
acknowledged: true,
deletedCount: 1
}

 

Database 구조

진행한 거랑 비교를 하면 각각의 유저는 Document라고 할 수 있음.

 

 

미래의 목표는 결국 이 MongoDB를 파이썬에서 사용할 수 있게 하는 것이 목적이긴 하다.

근데 무료가 아니라서 해야 하나 싶긴 한데 음...

 

일단 해보는 걸로...

github

https://github.com/sungreong/mongodb_and_nodejs_study.git

728x90

'개발 > MongoDB' 카테고리의 다른 글

MongoDB Atlas가 기계 학습에 적합한 4가지 이유  (0) 2023.03.03