4장: MongoDB 셸 시작하기
MongoDB Shell 시작하기
MongoDB를 효과적으로 활용하려면 가장 먼저 MongoDB Shell(mongosh) 환경에 익숙해지는 것이 중요하다. mongosh는 데이터베이스와 직접 상호작용하며 쿼리, 데이터 입력, 변경, 관리 기능을 모두 제공한다. 복잡한 환경에서도 손쉽게 작업을 수행할 수 있어, 실전에서는 꼭 다루어야 할 도구다.
Shell 실행 방법과 환경 준비
MongoDB가 정상적으로 설치되어 있다면, 커맨드 라인에서 mongod
명령으로 먼저 서버를 실행한다. 별도의 터미널을 열어서 mongosh
를 입력하면, MongoDB Shell이 실행되며 데이터베이스 서버에 접속된다. 만약 접속 설정을 따로 지정하고 싶다면, 서버 주소와 포트를 함께 입력할 수 있다. 이Shell은 실제 데이터베이스 안에서 데이터를 다루는 모든 기본 명령을 자유롭게 사용할 수 있게 해준다.
데이터베이스 관리의 기초
MongoDB Shell 첫 화면에서는 기본적으로 admin 데이터베이스에 연결된 상태다. 현재 데이터베이스 변경은 use 데이터베이스명
명령으로 이뤄진다. 만약 지정한 이름의 데이터베이스가 없다면, 해당 명령을 입력하는 순간 새 데이터베이스가 자동으로 생성된다. 존재하는 데이터베이스 목록은 show dbs
로 확인할 수 있고, 현재 선택된 데이터베이스는 db
명령으로 확인할 수 있다.
컬렉션과 문서 다루기
MongoDB에서는 데이터를 컬렉션(Collection)에 저장한다. 이는 관계형 데이터베이스의 테이블과 유사하다. 특정 데이터베이스 내 존재하는 모든 컬렉션 목록은 show collections
로 확인할 수 있다. 새 컬렉션을 만들기 위해서는 직접 데이터를 삽입하는 것만으로도 자동 생성된다. 예를 들어, db.users.insertOne({name: "홍길동", age: 30})
처럼 명령하면 users라는 컬렉션이 없더라도 즉시 생성되고 데이터가 추가된다. 이는 MongoDB만의 유연한 설계 덕분이다.
핵심 명령어와 실전 예시
가장 많이 사용하는 Shell 명령어들은 다음과 같다.
데이터베이스 열람:
show dbs
접속 중인 데이터베이스 확인:
db
데이터베이스 변경:
use 데이터베이스이름
컬렉션 확인:
show collections
데이터 삽입:
db.컬렉션이름.insertOne({ ... })
데이터 조회:
db.컬렉션이름.find()
데이터 수정:
db.컬렉션이름.updateOne({조건}, {$set: {변경내용}})
데이터 삭제:
db.컬렉션이름.deleteOne({조건})
이처럼 MongoDB Shell을 손에 익히면, 데이터를 쉽고 빠르게 조작하거나 데이터베이스 구조를 실시간으로 조정할 수 있다. 실전 프로젝트에서도 문제의 원인 파악과 데이터 점검, 그리고 신속한 변경에 큰 도움이 된다.
Shell 활용의 팁과 주의점
데이터 구조 설계나 스키마 변경, 대량 데이터를 다룰 때 Shell의 편리함이 더욱 빛을 발한다. 하지만 오타 한 글자로도 의도치 않게 새로운 컬렉션이나 데이터베이스가 생성될 수 있으므로 신중함이 요구된다. Shell 환경에서는 작업 이력이 남지 않으니, 중요한 작업 전에는 백업을 고려하는 것이 바람직하다.


