[Node.js 교과서] 섹션 8 - 몽고디비

2024. 11. 11. 19:24·Node.js

 

애플 실리콘 몽고디비 설치

  • Homebrew 설치
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

 

  • 몽고디비 설치
brew tap mongodb/brew
brew install mongodb-community
brew install mongosh
  • 몽고디비 실행
brew services start mongodb-community

 

  • 몽고디비 프롬프트 접속
mongosh
  • 관리자 계정 추가
use admin
db.cerateUser({user:'이름', pwd:'비밀번호',roles:['root']})
  • 몽고디비 중지
brew services stop mongodb-community
  • 몽고디비 설정 파일 수정
vim /opt/homebrew/etc/mongod.conf
  • `mongod.conf` 파일에 보안 설정 추가
...
security:
	authorization: enabled
  • 몽고디비 다시 시작후 몽고디비 서버 접속
brew services start mongodb-community
mongosh admin -u [이름] -p [비밀번호]

 

데이터베이스 및 컬렉션 생성하기


데이터 베이스 생성

`use [데이터베이스명]`으로 데이터베이스를 생성합니다.

use nodejs

 

데이터베이스 목록 확인

`show dbs` 명령어로 데이터베이스 목록을 확인합니다. 데이터베이스를 생성하고 데이터를 삽입하지 않았다면 해당 데이터베이스는 보이지는 않습니다.

show dbs

현재 사용중인 데이터베이스 확인하기

`db` 명령어로 현재 사용중인 데이터베이스를 확인합니다.

db

 

컬렉션 생성

`db.createCollection([콜렉션명])`으로 데이터베이스에 콜렉션을 생성합니다.

db.createCollection('users')
db.createCollection('comments')

 

컬렉션 목록 확인

`show collections` 명령어로 생성한 컬렉션 목록을 확인합니다.

show collections

 

CRUD 작업하기


Create(생성)

`db.컬렉션명.insertOne(다큐먼트)`명령어를 사용해 다큐먼트를 생성할 수 있습니다.

db.users.insertOne({name:'bearn', age: 24, married: false, comment: '안녕하세요', createdAt: new Date()});

Read(조회)

`db.컬렉션명.find{}`메서드를 사용해 다큐먼트를 조회할 수 있습니다.

db.users.find({});

특정 필드만 조회하고 싶으면 `find` 메서드의 두 번째 인수로 조회할 필드를 넣으면 됩니다. 1또는 true를 지정해 원하는 필드를 가져옵니다.

db.users.find({}, {_id: 0, name: 1, married: 1});

`$gt`(초과), `$gte`(이상), `$lt`(미만), `$lte`(이하), `$ne`(같지 않음), `$or`(또는), `$in`(배열 요소 중 하나) 연산자를 사용해 조건을 줄 수 있습니다.

db.users.find({$or: [{age: {$gt}}, {married: false}]}, {_id: 0, name: 1, age: 1})

`sort` 메서드를 사용해 정렬을 수행할 수 있습니다. -1은 내림차순 1은 오름차순입니다.

db.users.find({}, {_id: 0, name: 1, age:1}).sort({age: -1});

`limit` 메서드를 사용해 조회할 다큐먼트 개수를 설정할 수 있습니다.

db.users.find({}, {_id: 0, name: 1, age:1}).sort({age: -1}).limit(1);

`skip` 메서드를 사용하면 다큐먼트 개수를 몇개 건너뛸지 설정합니다.

db.users.find({}, {_id: 0, name: 1, age:1}).sort({age: -1}).limit(1).skip(1);

Update(수정)

`db.컬렉션명.updateOne({수정할 다큐먼트 조건}, {$set:{수정할 내용}})`명령어로 컬렉션을 수정합니다. 여러 건을 수정하려면 `updateMany` 메서드를 사용합니다.

db.users.updateOne({name:'bear'}, {$set: {comment: '반갑습니다'}});

Delete(삭제)

`db.컬렉션명.deleteOne({삭제할 다큐먼트 조건})` 명명러를 이용해 다큐먼트를 삭제합니다. 여러 건을 삭제하려면 `deleteMany` 메서드를 사용합니다.

db.users.deleteOne({name:'bear'});

 

 

참고


 

 

Node.js 교과서 : 네이버 도서

네이버 도서 상세정보를 제공합니다.

search.shopping.naver.com

 

 

[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지 강의 | 제로초(조현영) - 인프런

제로초(조현영) | 노드가 무엇인지부터, 자바스크립트 최신 문법, 노드의 API, npm, 모듈 시스템, 데이터베이스, 테스팅 등을 배우고 5가지 실전 예제로 프로젝트를 만들어 나갑니다. 클라우드에 서

www.inflearn.com

'Node.js' 카테고리의 다른 글

[노드 교과서] 섹션 9 - 익스프레스로 SNS 서비스 만들기  (2) 2024.11.17
JS로 차트 훼손 없이 엑셀 수정하기!!!  (1) 2024.11.16
[Node.js 교과서] 섹션7 - MySQL  (3) 2024.11.09
[Node.js 교과서] 섹션 6 - 익스프레스 웹 서버 만들기  (0) 2024.11.03
[Node.js 교과서] 섹션 5 - 패키지 매니저  (1) 2024.10.25
'Node.js' 카테고리의 다른 글
  • [노드 교과서] 섹션 9 - 익스프레스로 SNS 서비스 만들기
  • JS로 차트 훼손 없이 엑셀 수정하기!!!
  • [Node.js 교과서] 섹션7 - MySQL
  • [Node.js 교과서] 섹션 6 - 익스프레스 웹 서버 만들기
bearn_soo
bearn_soo
추상적으로 받아들이되 구체적으로 이해하라
  • bearn_soo
    초밥구이
    bearn_soo
  • 전체
    오늘
    어제
    • 분류 전체보기 (78)
      • Javascript (16)
      • Node.js (18)
      • 알고리즘 (8)
      • 네트워크 (2)
      • 데이터베이스 (10)
      • 운영체제 (11)
      • 자료구조 (6)
      • 공부기록 (7)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
bearn_soo
[Node.js 교과서] 섹션 8 - 몽고디비
상단으로

티스토리툴바