티스토리 뷰
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 |