이번에는 MongoDB를 설치하고 Document의 생성까지 해보겠습니다.
1. MongoDB란?
MongoDB는 NoSQL 데이터베이스로, 비정형 데이터를 저장하는 데 최적화되어 있습니다. 데이터는 JSON과 유사한 BSON 형식의 문서로 저장되며, 동적 스키마를 지원하여 유연하게 구조를 변경할 수 있습니다. 수평적 확장이 용이해 대규모 데이터 처리에 적합하며, 높은 성능을 제공합니다. MongoDB는 자바스크립트 기반의 쿼리 언어를 사용해 다양한 쿼리를 쉽게 수행할 수 있습니다. 이러한 특성 덕분에 빅데이터, 실시간 분석 등 여러 분야에서 널리 활용되고 있습니다.
2. MongoDB의 구조
저는 처음에 RDBMS를 쓰다가 MongoDB를 사용할 일이 생겨 공부했었는데, 처음에 MongoDB의 기본적인 구조가 익숙하지 않아서 많이 어렵게 느껴지더라구요. 그때 RDBMS와 MongoDB 구조를 비교하여 생각해보니 더 쉽게 이해했던 기억이 있습니다.
| RDBMS | MongoDB |
| 테이블(Table) | 컬렉션(Collection) |
| 행(Row) | 문서(Document) |
| 열(Column) | 필드(Field) |
3. MongoDB 설치
이제 MongoDB 설치를 시작하겠습니다. 먼저 MongoDB의 공식 사이트로 들어가셔서 “MongoDB Community Server” 파일을 본인 컴퓨터의 사양에 알맞게 설정해주고 다운을 시작합니다.

msi파일을 다운로드 하고 실행하면 다음 화면이 나옵니다.

Next클릭

“I accept the terms in the License Agreement” 체크하시구 Next

Custom은 사용자 정의입니다. 저희는 Complete를 눌러 설정합니다.

Next

마지막 Next후

Install
이렇게 작업을 완료하면 위에 설정했던 경로안에

이 파일들이 생성된 것을 볼 수 있습니다. 하지만 저희는 “monghsh”라는 파일이 필요한데, 이 파일은 MongoShell에서 다운 받을 수 있습니다. 마찬가지로 아래 링크에서 zip파일로 다운을 시작합니다.
MongoDB Shell은 zip파일로 다운 받고 압축 해제 후 bin폴더에 들어가면

두 가지 파일이 생성된 것을 볼 수 있습니다. 파일 두 개를 Community Server 다운로드 할 떄의 bin폴더 안에 복사+붙여넣기 작업을 해줍니다.
4. MongoDB 실행
이제 MongoDB를 실행해보겠습니다. 먼저 윈도우+r 단축기로 cmd를 켜줍니다. 이 cmd가 켜지면 기본 경로가 있습니다. 경로를 C:\Program Files\MongoDB\Server\7.0\bin로 설정해줍니다. 저희는 bin 폴더안에 있는 파일들을 실행할 것이기 때문에 MongoDB 폴더로 들어가 bin폴더로 경로를 연결해줍니다. bin폴더와 연결된 상태에서 “monghsh”를 입력해줍니다.
(cmd 경로 명령어 – “cd ..”: 이전 디렉토리로 이동, “cd <디렉토리명>”: 현재 디렉토리에서 존재하는 디렉토리로 이동)

mongosh를 입력하고 나면 마지막에 text>라고 나옵니다. 이제 저희가 MongoDB를 다룰 수 있는 환경이 갖춰진 것입니다.
5. DB생성 및 사용, 제거
show dbs // DB 목록보기
use <DB이름> // DB 생성 및 사용
db // 현재 DB 이름 출력
db.dropDatabase() // 현재 DB 제거
먼저 “test>”에서 “test”는 MongoDB를 다운받을 때 자동으로 생성된 DB입니다. 이제 저희가 원하는 DB를 선택해봅시다. 먼저 콘솔창에 “show dbs”를 입력합니다.
test> show dbs
admin 40.00 KiB
config 72.00 KiB
local 80.00 KiB
이제 밑에 나열된 것들이 존재하는 데이터베이스들의 목록입니다. 이제 데이터베이스를 선택해줄 건데 “use <데이터베이스명>” 을 입력 해주면 데이터베이스에 존재하지 않는 데이터베이스명이면 생성 및 사용, 이미 존재하는 데이터베이스면 사용 상태로 변경합니다. 예시로 “use user”를 입력하면
test> use user
switched to db user
현재 DB를 체크하는 함수는 “db”입니다.
user> db
user
하지만 여기서 다시 show dbs를 입력하면 user가 추가되지 않은 모습을 볼 수 있는데요, 이는 데이터베이스 생성 후 하나의 Document를 추가해줘야 등록이 되기 때문입니다. 이제 데이터베이스에 데이터를 추가해보겠습니다.
6. Collection 생성
db.createCollection("컬렉션명") // 현재 설정한 DB에 컬렉션 생성
show collections // 현재 위치한 DB에 컬렉션 리스트 목록
db.컬렉션명.drop() // 현재 위치한 DB에 컬렉션 제거
먼저 컬렉션을 생성해줍니다. 이전에 제가 생성할 컬렉션이 위치할 DB를 설정해줍니다.
test> use user
user> db.createCollection("user")
{ ok: 1 }
생성 후 컬렉션 목록 보기
user> show collections
user
컬렉션 제거
user> db.user.drop()
true
7. Insert
db.컬렉션명.insertOne({"Key1": "Value1", "Key2": "Value2"}) // MongoDB는 Key와 Value를 한쌍으로 데이터 입력
db.컬렉션명.find() // DB에 생성된 Document들 확인
db.컬렉션명.deleteOne(criteria, justOne) // 컬렉션에 생성된 Document제거
이제 DB에 Document를 추가해보겠습니다. 아래 예시처럼 컬렉션에 insert를 해주면
user> db.user.insertOne({"name": "MongoDB user", "password": "1234"});
{
acknowledged: true,
insertedId: ObjectId('66bee9c01dc6c83140228fb6')
}
insert와 동시에 find문을 사용해주면 저장된 Document를 볼 수 있습니다.
user> db.user.find()
[
{
_id: ObjectId('66bee9c01dc6c83140228fb6'),
name: 'MongoDB user',
password: '1234'
}
]
이제 Document 삭제를 해보겠습니다. 삭제 함수는 deleteOne으로 안에는 두 개의 매개변수가 있습니다. criteria에 {}을 넣어주면 모든 Document가 제거됩니다. justOne은 필수 매개변수각 아니며 생략하면 false로서 criteria의 조건에 일치하는 모든 Document를 제거합니다. 만약 true로 설정하면 criteria와 일치하는 조건의 Document 중 하나만 제거됩니다.
db.user.deleteOne({"password": "1234"})
{ acknowledged: true, deletedCount: 1 }
user> db.user.find()
8. 마무리
show dbs // DB 목록보기
use <DB이름> // DB 생성 및 사용
db // 현재 DB 이름 출력
db.dropDatabase() // 현재 DB 제거
db.createCollection("컬렉션명") // 현재 설정한 DB에 컬렉션 생성
show collections // 현재 위치한 DB에 컬렉션 리스트 목록
db.컬렉션명.drop() // 현재 위치한 DB에 컬렉션 제거
db.컬렉션명.insertOne({"Key1": "Value1", "Key2": "Value2"}) // MongoDB는 Key와 Value를 한쌍으로 데이터 입력
db.컬렉션명.find() // DB에 생성된 Document들 확인
db.컬렉션명.deleteOne(criteria, justOne) // 컬렉션에 생성된 Document제거
오늘은 MongoDB 설치부터 Document의 생성까지 해보았습니다. 아직 미흡한 점이 많아 더 열심히 해야겠습니다. 감사합니다.
최신글
![[프로그래머스] 잘라서 배열로 저장하기 - 자바](https://develog.co.kr/wp-content/uploads/2025/01/프로그래머스-잘라서-배열로-저장하기-자바-150x150.png)
![[프로그래머스] 붕대 감기 - 자바](https://develog.co.kr/wp-content/uploads/2024/11/프로그래머스-붕대-감기-자바-150x150.png)
![[프로그래머스] 달리기 경주 - 자바](https://develog.co.kr/wp-content/uploads/2024/11/프로그래머스-달리기-경주-자바-150x150.png)
![[프로그래머스] 추억 점수 - 자바](https://develog.co.kr/wp-content/uploads/2024/11/JAVA-추억-점수-프로그래머스-150x150.png)
