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'라는 이름의 컬렉션을 삭제합니다.
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 |