본문 바로가기
Node.Js 정복기

MongoDB 설치 및 기초

by HoneyIT 2021. 1. 6.

 MongoDB는 SQL과는 다른 NoSQL 종류의 데이터베이스입니다.

 

SQL NoSQL
규칙에 맞는 데이터 입력
테이블 간 JOIN 지원
안전성, 일관성
테이블, 로우, 컬럼
자유로운 데이터 입력
컬렉션 간 JOIN 미지원
확장성, 가용성
컬렉션, 다큐먼트, 필드

 


https://www.mongodb.com/try/download/community

 

MongoDB Community Download

Download the Community version of MongoDB's non-relational database server from MongoDB's download center.

www.mongodb.com

MongoDB 홈페이지에 접속하여 Community Server를 다운로드받습니다.

 

 

$ cd C:/Program Files/MongoDB/Server/4.4/bin
$ mongod

데이터 요청을 처리하고 데이터 액세스를 관리하며 백그라운드 관리 작업을 수행하는 MongoDB 시스템의 기본 데몬 프로세스를 실행합니다. 사용할 때마다 실행 해야합니다.

$ mongo

콘솔창을 하나 더 열어 MongoDB의 셸 인터페이스를 열어줍니다.

 

> use admin

관리자를 admin으로 변경해줍니다.

 

> db.createUser({ user: '이름', pwd: '비밀번호', roles: ['root'] })

유저를 생성하고 권한을 부여합니다.

 

$ mongo --auth

기존의 프로세스 콘솔을 종료하고 로그인이 필요하도록 다시 실행합니다.

 

$ mongo admin -u '이름' -p '비밀번호'

또는

$ mongo admin -u '이름' -p
Enter password : '비밀번호'

위에서 생성한 계정으로 로그인해줍니다.

 

 

만들어진 계정으로 Compose에서도 연결합니다.

 


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


 

> use '데이터베이스 명'

데이터베이스를 생성해줍니다.

 

> show dbs

데이터베이스 목록을 확인합니다.

 

 

방금 생성한 데이터베이스가 보이지 않습니다.

데이터가 없기 때문입니다. 데이터를 한 개 이상 넣어야 표시됩니다.

 

> db

사용중인 데이터베이스를 확인합니다.

 

> db.createCollection('users')

컬렉션을 생성하는 명령어가 있지만 도큐먼트를 넣는 순간 컬렉션이 자동으로 생성됩니다.

 

> show collections

컬렉션을 확인합니다.

 

 

CRUD


MongoDB의 자료형은 기본적으로 자바스크립트 문법의 자료형을 사용합니다.

 

 

Create

> db.'컬렉션명'.save({ name: 'zero', age: 24, married: false, comment: '안녕하세용', createdAt: new Date() })

'

 

Compass에 추가된 것을 확인할 수 있습니다.

 

> db.users.find({ name: 'zero'}, { _id: 1})

다른 컬렉션에 'zero'라는 이름을 가진 유저가 댓글을 달기 위해 id를 찾아봅시다.

 

> db.comments.save({ commenter: ObjectId('5ff56de55d821cabb6681747'), comment: 'zero의 댓글입니다.', createdAt: new Date()})

 

 

Read

> db.users.find({})

컬렉션 내의 모든 도큐먼트를 조회합니다.

 

> db.users.find({ age: { $gt: 30}, married: true }, { _id: 0, name: 1, age: 1 })

첫 번째 인수 객체에 기입하여 조회시 조건을 줄 수 있습니다. 몽고 디비의 특수 연산자를 사용했습니다.

$gt(초과), $gte(이상), $lt(미만), $lte(이하), $ne(같지 않음), $or(또는), $in(배열 요소 중 하나)

 

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

내림차순(-1), 오름차순(1)

 

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

limit 메서드를 사용하여 조회한 다큐먼트의 개수를 설정할 수 있습니다.

해당 숫자의 개수만큼만 출력한다고 생각하면 편합니다.

 

 

 

Update

> db.users.update({ name: 'zero'}, { $set: { comment: '안녕하세요. 이 필드를 변경합니다.'}})

첫 번째 객체에 수정할 다큐먼트를 지정하고 $set으로 수정할 내용을 입력합니다.

 

 

 

Delete

db.users.remove({ name: 'zero'})

'zero'라는 이름의 컬렉션을 삭제합니다.

 


https://g.co/kgs/hLQmsa

 

Node.js 교과서: 기본기에 충실한 Node.js 10 입문서

조현영의 책

www.google.com

 

'Node.Js 정복기' 카테고리의 다른 글

노드 기능 part 2.  (0) 2021.01.13
노드의 기능 part 1.  (0) 2021.01.11
핵심 개념 이해하기  (0) 2020.12.28