MongoDB를 사용할 때 기본이라고 할 수 있는 데이타베이스와 컬렉션에 대해서 알아보고 만들어볼 것이다.
Database라는 것은 MongoDB에서 사용하는 데이타베이스의 가장 큰 단위이다.
Collection은 Database의 하위에 속하는 개념이다.
Field는 모여서 하나의 컬렉션을 구성하게 된다.
Document는 위의 항목으로 구성된 데이타베이스의 실제 데이타이다.
예를 들어서 설명해보겠다.
내가 쇼핑몰을 만들기 위해 DB를 구축해야 하는 상황이고, 쇼핑몰 이름은 신사 쇼핑몰이다.
신사 쇼핑몰 내에서 관리되어야 할 DB에는 유저 정보, 상품 정보, 결제 정보, 문의 내용 등 여러가지가 있다.
여기서 신사 쇼핑몰 이 자체가 데이타베이스가 되고, 유저정보, 상품 정보 등의 내용은 컬렉션이 된다.
그리고 유저 정보 내의 이름, 생년월일, 전화번호 등의 정보는 필드가 된다.
유저정보에 이름, 생년월일, 전화번호 등의 모든 필드를 채운 완성된 하나의 정보가 들어가면 도큐먼트가 된다.
한가지 더 예를 들어서 학원을 운영하는 프로그램을 개발하는데 여기에 구축해야 될 DB를 만든다고 하면,
학원은 데이타베이스가 되고, 학원 내에 필요한 정보들인 선생님 정보, 학생 정보, 과목 정보 등이 컬렉션이 된다.
여기서도 선생님 정보를 예로 들면 선생님 이름, 가르치는 과목 등의 정보가 필드가 된다.
이 필드들이 모두 채워진 하나 이상의 데이타를 도큐먼트라 한다.
위의 예로 어느정도 개념은 잡혔으리라 생각한다.
MySQL과 같은 RDB를 사용해본 개발자라면 ,
MySQL의 Database = MongoDB의 Database
MySQL의 Table = MongoDB의 Collection,
MySQL의 Column = MongoDB의 Field,
MySQL의 Row = MongoDB의 Document로 보면 된다.
이제 각 항목들을 만들어보고 지워보는 등의 작업을 해볼 것이다.
1. Database 생성
> use shinsa
shinsa 라는 이름으로 DB를 생성한다.
2. Collection 생성 (대소문자 구분에 주의한다.)
> db.createCollection("users");
users 라는 이름으로 컬렉션을 생성한다.
위에서 shinsa라는 DB 생성 과정을 거쳤으므로 shinsa DB 내에 users 컬렉션이 생성되는 것이다.
3. Collection 생성 확인
> show collections;
4. Database 생성 확인
> show databases;
위와 같이 users 컬렉션과 shinsa 데이타베이스가 생성된 것을 확인할 수 있다.
5. users 컬렉션에 유저 도큐먼트를 생성한다.
> db.users.insert({"name": "홍길동", "age": 20, "gender": "man"});
name 필드, age 필드, gender 필드로 구성된 users 컬렉션에 해당 도큐먼트를 생성하는 명령이다.
6. users 컬렉션의 생성한 데이타를 확인한다.
> db.users.find();
위와 같이 도큐먼트가 추가된 것을 확인할 수 있다.
여기까지가 데이타베이스를 구성하고 조회하는 가장 기본적인 내용이다.
실제로 MongoDB를 실무에서 사용하게 될 때 이런 식으로 DB를 구성하게 될 것이다.
(물론 이 외에 다양한 고급 기능들이 존재하지만 그것은 나중에 다루도록 한다.)
7. 만들어진 컬렉션을 삭제한다.
> db.users.drop();
show collections; 명령으로 users 컬렉션이 삭제된 것을 확인할 수 있다.
8. 만들어진 데이타베이스를 삭제한다.
> use shinsa;
> db.dropDatabase();
db.dropDatabase() 명령만 사용하여 바로 제거해도 되지만, 실수로 다른 DB를 선택해놓고 삭제하는 것을 방지 하기 위해 use 데이타베이스 명령으로 확실히 데이타베이스를 설정해주고 삭제하도록 하는 것이 좋다.
이제 show databases; 명령으로 shinsa 데이타베이스가 삭제된 것을 확인할 수 있다.
'프로그래밍 > Mongo DB' 카테고리의 다른 글
[MongoDB] 도큐먼트 조회(find) 다루기 (0) | 2022.05.18 |
---|---|
[MongoDB] 삭제(remove), 단일 삭제(deleteOne), 다수 삭제(deleteMany) (0) | 2021.12.14 |
[MongoDB] 수정(update), 단일 수정(updateOne), 다수 수정(updateMany) (0) | 2021.12.12 |
[MongoDB] 삽입(insert), 단일 삽입(insertOne), 다수 삽입(insertMany) (0) | 2021.12.11 |
[Mongo DB] 방심한 틈에 랜섬웨어에 당해 DB 내용을 날린 이야기 (계정 인증 관련) (3) | 2020.10.31 |