티스토리 뷰

Node.js

6. MongoDB

Howu 2023. 4. 6. 12:44

1) MongoDB

  • NoSQL의 대표주자인 mongoDB
    • 자유로운 데이터 입력
    • 컬렉션 간 JOIN 미지원
    • 확장성, 가용성
    • 용어 차이(컬렉션, 다큐먼트, 필드)
    • 빅데이터, 메시징, 세션 관리 등 비정형 데이터에 사용하면 좋다.
  • MongoDB 연결하기
$ cd C:\Program Files\MongoDB\Server\6.0\bin
$ mongod --ipv6
  • Mongosh(몽고디비셸) 설치
$ cd C:\Users\impri\Downloads\mongosh-1.8.0-win32-x64\mongosh-1.8.0-win32-x64\bin
$ mongosh
  • admin 설정하기
$ use admin
$ db.createUser({ user: '이름', pwd: '1234', roles: ['root'] });

// Mongod -ipv6 입력했던 콘솔 종료 후 다시 입력
$ mongod --ipv6 --auth

// mongosh 입력했던 콘솔 종료 후 다시 입력
$ mongosh admin -u 이름 -p

 

2) 데이터베이스, 컬렉션 만들기

$ use nodejs //use 데이터베이스명으로 생성
$ show dbs //db 목록 확인
$ db //db로 현재 사용중인 데이터베이스 확인

//다큐먼트를 넣는 순간 컬렉션도 자동 생성
db.createCollection('users');
db.createCollection('comments');

//현재 컬렉션 확인
show collections

 

3) CRUD

  • Create
$ mongosh
test> use nodejs;
nodejs> db.users.insertOne({ name: 'zero', age:24, married: false, comment: '안녕하세요, 간단히 몽고디비 사용 방법에 대해 알아봅시다.', createdAt: new Date() });
nodejs> db.users.insertOne({ name: 'nero', age:32, married: true, comment: '안녕하세요, zero 친구 nero 입니다.', createdAt: new Date() });
  • Create(관계 설정)
nodejs> db.users.find({ name: 'zero' }, { _id: 1 })
nodejs> db.comments.insertOne({ commenter: objectId('5a1687007af03c3700826f70), comment: '안녕하세요. zero의 댓글입니다.', createdAt: new Date() });
  • Read
nodejs> db.users.find({});
  • Update
nodejs> db.users.updateOne({ name: 'nero'}, { $set: { comment: '안녕하세요. 이 필드를 바꿔보겠습니다!' } });
nodejs> db.users.deleteOne({ name: 'nero'});

 

3) 몽구스 ODM(Object Document Mapping)

  • 몽고디비 작업을 쉽게 할 수 있도록 도와주는 라이브러리
  • 테이블과 유사한 기능으로 JOIN 기능 추가

 

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

7. 노드버드 SNS 만들기 - (1) 프로젝트 구조 생성  (0) 2023.04.06
[error] npm start 시 오류  (0) 2023.04.06
5. MySQL  (0) 2023.04.05
4. Express 웹 서버 만들기  (0) 2023.04.05
3. 패키지 매니저  (0) 2023.04.05
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함