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") |
인덱스 삭제 |