emluy 개발 일기

express.js - mongoDB 연결 후 DB, Collection(table), Document(data) 다루기, 관련 shell 명령어 본문

웹 개발/express.js

express.js - mongoDB 연결 후 DB, Collection(table), Document(data) 다루기, 관련 shell 명령어

yulme 2020. 8. 3. 15:17
SMALL

 

 

0. mongodb서버 실행시키기

$ mongo

https://yulme.tistory.com/79?category=791295

 

 

 

 

* visual studio 에 있는 파일들에 직접 코드를 넣어서 DB, Collection, Document 다루기

1. DB

1-1. app.js에서 선언

:app.js에서 mongoose.connect함수 안에 적어준 이름 사용

ex)16 번째줄에  mongoose.connect('mongodb://localhost:27017/mydb') -> 여기서 mydb가 db이름

#app.js 

1-1-1. cmd에서 app.js실행해줌

:$node app.js

 

 

**이때 매우매우 중요한사실!!!!!!!!!!!!

: document가 하나도 없으면 show dbs해도 내가 생성해준 db안뜬다!! 연결 안된줄알고 계속 헤매지 말것

 

 

1-1-2. 다른 cmd창 하나 더 열어서 mongo server 실행 해줌

>use mydb 

 

 

 

 

 

 

 

 

 

 

 

2. Collection

2-1. app.js에 만들어 주기

#app.js에서 생성한 Schema 이름 

2-2. 만들고 난 후 만들어진 Collection들 확인하기

>db.getCollectionNames()

**확인 결과, 내가 생선한 Schema이름과 다르다! 나는 app.js에 User라고 생성했는데 확인해보니 users라고 되어있음

-> django admin도 그러던데 왜 그런것일까..? 자동으로 이름을 복수처리해서 바꿔서 생성해주는거같은데 와이..?

 : 이유없다. 그냥 생성될때 자동으로 복수형태로 생성된다고 한다.

 

 

 

 

 

 

 

 

 

 

3. Document

3-1. app.js에서 해주기 (Collection 관련 명령어 부분 2-1과 연결됨)

$node app.js

**다른 cmd창에서

>use mydb

>db.users.find()

** node app.js 새로 실행해줄 때마다 똑같은 값이 계속 추가된다!! 주의할것.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

* mongoDB shell에서 DB, Collection, Document 다루기

1. DB 

1-1. 

아직 안만들어진 db를 만들고 싶을 때 따로 만들어주는 함수는 없음, 사용하겠다와 만들고 사용하겠다 두 개 명령어가 같음!  -> 없으면 생성해주고 있으면 쓰게 해주는 명령어임!

 

> use database이름

 

 

 

1-2. 현재 사용중인 db이름 확인하기

>db

 

 

1-3. 서버에 존재하는 모든 db 확인하기

>show dbs

 

 

 

1-4. db삭제하기

>use 삭제할db명

>db.dropDatabase()

 

 

 

 

 

 

 

 

 

 

 

 

2. Collection

1-1. document 설정 안해주고 그냥 collection 생성하기만 함

>use db이름

>db.createCollection("하고싶은collection이름")

 

2-2. collection 속성들 옵션 지정해주면서 생성 (document속성이 아님!)

*collection 속성 목록

ex) articles라는 collection 생성할 때, 이 collection에 capped, size, max 라는 옵션을 정해줌

>use db이름

>db.createCollection("articles", {

  capped : true,

  size : 61428000,

  max : 10000

  })

 

2-3. document insert로 자동 collection 생성하기

ex) people이라는 collection은 아직 없음. 만들어줄 것임. 근데 createCollection으로 말고 document를 insert해줘서 자동으로 people이 생겨나게 할 것임, 

people이라는 collection이 이미 있다하면 있는 곳에 데이터를 넣어주게 되는 것임!

>db.people.insert({name:"yurim"})

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3. Document

3-1. collection에 들어있는 document들 모두 확인하기

>db.collection이름.find()

3-1-1. 좀 예쁘게 엔터 먹은 상태로 확인할 수 있는 법

>db.collection이름.find().pretty()

 

3-1-2. 조건으로 하나의 document 보기

>db.collection이름.find({"속성명" : "값"})

 

3-1-2-1. 조건에 연산자 사용 

ex) 속성값 age가 20보다 작은 document 보여줘 >db.collection이름.find({"age" : $lte:20})

 

3-2. document 추가하기

>db.collection이름.insert({속성명:"값"})

 

3-3. document 삭제하기

3-3-1. 전부 삭제

>db.collection이름.remove({})

 

3-3-2. 조건으로 삭제

>db.collection이름.remove({속성명:"값"})

animal db의 animal collection에서 dog라는 name을 가진 document 삭제

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

*브라우저에서 data확인하기

https://cinema4dr12.tistory.com/entry/WebApp-Express-%EA%B0%84%EB%8B%A8%ED%95%9C-MongoDB-Middleware-%EB%A7%8C%EB%93%A4%EA%B8%B0

 

[WebApp / Express] 간단한 MongoDB Middleware 만들기

by Geol Choi | December 19, 2015 이번 글에서는 MongoDB의 ODM(Object Data Mapping) 툴인 mongoose를 이용하여 간단한 MongoDB Middleware를 만들어 보도록 한다. Part 1 - Express 프로젝트 생성 우선 Express..

cinema4dr12.tistory.com

 

 

 

 

 

* 참고 블로그

: 각종 mongodb관련 shell 명령어들 (db,table,data CRUD)

https://pro-self-studier.tistory.com/58?category=663470

 

1. MongoDB 데이터 모델링, DB/Collection/Document 생성 및 제거

안녕하세요, 프로독학러 입니다. 이번 포스팅에서는 MongoDB 의 데이터를 모델링하는 방법에 대해 간단히 살펴보고, MongoDB Shell 안에서 Database, Collection, Document 를 생성하고 제거하는 명령어에 대�

pro-self-studier.tistory.com

 

* 각종 shell 명령어들 + 연산자 사용 예제

https://velopert.com/479

 

[MongoDB] 강좌 3편 Document Query(조회) – find() 메소드 | VELOPERT.LOG

이번 강좌에선 Document를 조회하는 메소드인 find() 메소드를 자세히 알아보도록 하겠습니다. Document 조회: db.COLLECTION_NAME.find(query, projection) 이 메소드에서 사용되는 매개변수에 대하여 알아봅시다

velopert.com

 

 

반응형
Comments