Skip to content

MongoDB 주요 명령 치트 시트

MongoDB는 분산 파일 저장 기반의 오픈 소스 데이터베이스 시스템으로, 오늘날 가장 인기 있는 NoSQL 데이터베이스 중 하나입니다. 이 치트 시트는 mongosh CLI에서의 주요 작업을 다룹니다.

연결 및 관리

명령 설명
mongosh 현지 포트의 MongoDB에 연결
use <db_name> 데이터베이스 전환 또는 생성
db 현재 데이터베이스 확인
show dbs 모든 데이터베이스 목록 표시
show collections 모든 컬렉션 목록 표시
exit Shell 종료

컬렉션 작업 (DDL)

명령 설명
db.createCollection("users") 수동으로 컬렉션 생성
db.users.drop() 지정된 컬렉션 삭제
db.users.stats() 컬렉션 통계 보기
db.users.renameCollection("people") 컬렉션 이름 변경

문서 작업 (CRUD)

Insert

// 문서 삽입
db.users.insertOne({ name: "Alice", age: 25 });
db.users.insertMany([{ name: "Bob" }, { name: "Charlie" }]);

Read

// 문서 조회
db.users.find().pretty(); 
db.users.find({ age: { $gt: 20 } }).sort({ age: 1 }).limit(10); 
db.users.findOne({ name: "Alice" }); 

Update

// 문서 업데이트
db.users.updateOne({ name: "Alice" }, { $set: { age: 26 } });
db.users.updateMany({ age: { $lt: 18 } }, { $set: { status: "minor" } });

Delete

// 문서 삭제
db.users.deleteOne({ _id: ObjectId("...") });
db.users.deleteMany({ status: "inactive" });

주요 연산자

Type Operator 설명
비교 $gt, $gte, $lt, $lte, $ne 큼, 크거나 같음, 작음, 작거나 같음, 같지 않음
논리 $and, $or, $not, $nor And, Or, Not, Nor
필드 $set, $unset, $inc, $rename 값 설정, 필드 제거, 증감 업데이트, 필드 이름 변경
배열 $push, $pop, $pull, $addToSet 추가, 추출, 일치 항목 제거, 고유 항목 추가

집계 파이프라인

db.orders.aggregate([
  { $match: { status: "A" } },
  { $group: { _id: "$cust_id", total: { $sum: "$amount" } } },
  { $sort: { total: -1 } }
]);

인덱스 관리

명령 설명
db.users.createIndex({ name: 1 }) 오름차순 인덱스 생성
db.users.createIndex({ email: 1 }, { unique: true }) 고유 인덱스 생성
db.users.getIndexes() 모든 인덱스 보기
db.users.dropIndex("name_1") 인덱스 삭제