← 홈

🍃MongoDB

⌘K
🤖
Claude Code AI 도구
🤗
Hugging Face AI 도구
🦜
LangChain AI 도구
🧠
Keras AI 도구
🦙
Ollama AI 도구
🐍
Python 프로그래밍 언어
🟨
JavaScript 프로그래밍 언어
🔷
TypeScript 프로그래밍 언어
⚛️
React 프로그래밍 언어
🐹
Go 프로그래밍 언어
🦀
Rust 프로그래밍 언어
📊
MATLAB 프로그래밍 언어
🗄️
SQL 프로그래밍 언어
⚙️
C/C++ 프로그래밍 언어
Java 프로그래밍 언어
🟣
C# 프로그래밍 언어
🍎
Swift 프로그래밍 언어
🟠
Kotlin 프로그래밍 언어
Next.js 프로그래밍 언어
💚
Vue.js 프로그래밍 언어
🔥
Svelte 프로그래밍 언어
🎨
Tailwind CSS 프로그래밍 언어
💚
Node.js 프로그래밍 언어
🌐
HTML 프로그래밍 언어
🎨
CSS/SCSS 프로그래밍 언어
🐘
PHP 프로그래밍 언어
💎
Ruby 프로그래밍 언어
🔴
Scala 프로그래밍 언어
📊
R 프로그래밍 언어
🎯
Dart 프로그래밍 언어
💧
Elixir 프로그래밍 언어
🌙
Lua 프로그래밍 언어
🐪
Perl 프로그래밍 언어
🅰️
Angular 프로그래밍 언어
🚂
Express.js 프로그래밍 언어
🐱
NestJS 프로그래밍 언어
🛤️
Ruby on Rails 프로그래밍 언어
◼️
GraphQL 프로그래밍 언어
🟪
Haskell 프로그래밍 언어
💚
Nuxt.js 프로그래밍 언어
🔷
SolidJS 프로그래밍 언어
htmx 프로그래밍 언어
💻
VS Code 개발 도구
🧠
PyCharm 개발 도구
📓
Jupyter 개발 도구
🧠
IntelliJ IDEA 개발 도구
💚
Neovim 개발 도구
🔮
Emacs 개발 도구
🔀
Git DevOps & CLI
🐳
Docker DevOps & CLI
☸️
Kubernetes DevOps & CLI
☁️
AWS CLI DevOps & CLI
🔄
GitHub Actions DevOps & CLI
🐧
Linux 명령어 DevOps & CLI
💻
Bash 스크립팅 DevOps & CLI
🌐
Nginx DevOps & CLI
📝
Vim DevOps & CLI
🔨
Makefile DevOps & CLI
🧪
Pytest DevOps & CLI
🪟
Windows DevOps & CLI
📦
패키지 매니저 DevOps & CLI
🍎
macOS DevOps & CLI
🏗️
Terraform DevOps & CLI
🔧
Ansible DevOps & CLI
Helm DevOps & CLI
🔨
Jenkins DevOps & CLI
🔥
Prometheus DevOps & CLI
📊
Grafana DevOps & CLI
💻
Zsh DevOps & CLI
🐟
Fish Shell DevOps & CLI
💙
PowerShell DevOps & CLI
🔄
Argo CD DevOps & CLI
🔀
Traefik DevOps & CLI
☁️
Azure CLI DevOps & CLI
☁️
Google Cloud CLI DevOps & CLI
📟
tmux DevOps & CLI
🔧
jq DevOps & CLI
✂️
sed DevOps & CLI
📊
awk DevOps & CLI
🌊
Apache Airflow DevOps & CLI
🔢
NumPy 데이터베이스 & 데이터
🐼
Pandas 데이터베이스 & 데이터
🔥
PyTorch 데이터베이스 & 데이터
🧠
TensorFlow 데이터베이스 & 데이터
📈
Matplotlib 데이터베이스 & 데이터
🐘
PostgreSQL 데이터베이스 & 데이터
🐬
MySQL 데이터베이스 & 데이터
🍃
MongoDB 데이터베이스 & 데이터
🔴
Redis 데이터베이스 & 데이터
🔍
Elasticsearch 데이터베이스 & 데이터
🤖
Scikit-learn 데이터베이스 & 데이터
👁️
OpenCV 데이터베이스 & 데이터
Apache Spark 데이터베이스 & 데이터
🪶
SQLite 데이터베이스 & 데이터
Supabase 데이터베이스 & 데이터
🔵
Neo4j 데이터베이스 & 데이터
📨
Apache Kafka 데이터베이스 & 데이터
🐰
RabbitMQ 데이터베이스 & 데이터
🔤
Regex 유틸리티
📝
Markdown 유틸리티
📄
LaTeX 유틸리티
🔐
SSH & GPG 유틸리티
🌐
curl & HTTP 유틸리티
📜
reStructuredText 유틸리티
🚀
Postman 유틸리티
🎬
FFmpeg 유틸리티
🖼️
ImageMagick 유틸리티
🔍
ripgrep 유틸리티
🔍
fzf 유틸리티
📗
Microsoft Excel 오피스 애플리케이션
📘
Microsoft Word 오피스 애플리케이션
📙
Microsoft PowerPoint 오피스 애플리케이션
📝
한컴 한글 한컴오피스
📽️
한컴 한쇼 한컴오피스
📊
한컴 한셀 한컴오피스
📄
Google 문서 Google Workspace
📊
Google 스프레드시트 Google Workspace
📽️
Google 프레젠테이션 Google Workspace
🔌
Cadence Virtuoso EDA & 하드웨어
⚙️
Synopsys EDA EDA & 하드웨어
💎
Verilog & VHDL EDA & 하드웨어
LTSpice EDA & 하드웨어
🔧
KiCad EDA & 하드웨어
📝
Notion 생산성 도구
💎
Obsidian 생산성 도구
💬
Slack 생산성 도구
🎮
Discord 생산성 도구
🎨
Figma 디자인 도구
📘
Confluence Atlassian
📋
Jira Atlassian
🃏
Jest 테스팅
Vitest 테스팅
🎭
Playwright 테스팅
🌲
Cypress 테스팅
🌐
Selenium 테스팅
💙
Flutter 모바일 개발
📱
React Native 모바일 개발
🍎
SwiftUI 모바일 개발
📱
Expo 모바일 개발
🐍
Django 웹 프레임워크
FastAPI 웹 프레임워크
🌶️
Flask 웹 프레임워크
🍃
Spring Boot 웹 프레임워크
🍸
Gin 웹 프레임워크
Vite 빌드 도구
📦
Webpack 빌드 도구
esbuild 빌드 도구
🐘
Gradle 빌드 도구
🪶
Maven 빌드 도구
🔧
CMake 빌드 도구
🎮
Unity 게임 개발
🤖
Godot 게임 개발
🔌
Arduino 임베디드 & IoT
🔍
Nmap 보안
🐕
Datadog 모니터링
📖
Swagger/OpenAPI 문서화
검색 결과가 없습니다
EN KO

🔌 연결 & 기본

🔗 연결

mongosh 로컬 MongoDB 연결
mongosh "mongodb://host:27017" 특정 호스트 연결
mongosh "mongodb+srv://user:pass@cluster.mongodb.net/db" Atlas 연결
mongosh --username user --password pass 인증으로 연결

🗄️ 데이터베이스 작업

show dbs 데이터베이스 나열
use dbname 데이터베이스 전환/생성
db 현재 데이터베이스 표시
db.dropDatabase() 현재 데이터베이스 삭제
show collections 컬렉션 나열
db.createCollection("name") 컬렉션 생성
db.collection.drop() 컬렉션 삭제
db.stats() 데이터베이스 통계

📝 CRUD 작업

삽입

db.users.insertOne({ name: "John", age: 30 }) 단일 문서 삽입
db.users.insertMany([ { name: "John" }, { name: "Jane" } ]) 여러 문서 삽입
db.users.insertOne({ _id: "custom-id", name: "John" }) 커스텀 _id로 삽입

🔍 조회

db.users.find() 모든 문서 조회
db.users.find({ age: 30 }) 필터로 조회
db.users.findOne({ name: "John" }) 단일 문서 조회
db.users.find({ age: { $gt: 25 } }) 초과
db.users.find({ age: { $gte: 25, $lte: 35 } }) 범위 쿼리
db.users.find({ status: { $in: ["A", "B"] } }) 배열 내
db.users.find({ $or: [{ age: 25 }, { status: "A" }] }) OR 조건
db.users.find({ $and: [{ age: 25 }, { status: "A" }] }) AND 조건
db.users.find({ name: /^J/ }) 정규식 매칭
db.users.find({ email: { $exists: true } }) 필드 존재
db.users.find({ tags: "mongodb" }) 배열 포함
db.users.find({ "address.city": "Seoul" }) 중첩 필드

📊 프로젝션 & 정렬

db.users.find({}, { name: 1, email: 1 }) 필드 포함
db.users.find({}, { password: 0 }) 필드 제외
db.users.find().sort({ age: 1 }) 오름차순 정렬
db.users.find().sort({ age: -1 }) 내림차순 정렬
db.users.find().limit(10) 결과 제한
db.users.find().skip(10).limit(10) 페이지네이션
db.users.find().count() 문서 수 세기
db.users.distinct("status") 고유 값

✏️ 업데이트

db.users.updateOne( { name: "John" }, { $set: { age: 31 } } ) 단일 문서 업데이트
db.users.updateMany( { status: "A" }, { $set: { status: "B" } } ) 여러 문서 업데이트
db.users.updateOne( { name: "John" }, { $inc: { age: 1 } } ) 필드 증가
db.users.updateOne( { name: "John" }, { $unset: { tempField: "" } } ) 필드 제거
db.users.updateOne( { name: "John" }, { $push: { tags: "new" } } ) 배열에 추가
db.users.updateOne( { name: "John" }, { $pull: { tags: "old" } } ) 배열에서 제거
db.users.updateOne( { name: "John" }, { $addToSet: { tags: "unique" } } ) 배열에 고유 값 추가
db.users.replaceOne( { name: "John" }, { name: "John", age: 32, status: "A" } ) 문서 교체
db.users.updateOne( { name: "New" }, { $set: { name: "New", age: 25 } }, { upsert: true } ) 업서트

🗑️ 삭제

db.users.deleteOne({ name: "John" }) 단일 문서 삭제
db.users.deleteMany({ status: "inactive" }) 여러 문서 삭제
db.users.deleteMany({}) 모든 문서 삭제
db.users.findOneAndDelete({ name: "John" }) 조회 후 삭제

📈 집계

🔄 집계 파이프라인

db.orders.aggregate([ { $match: { status: "A" } }, { $group: { _id: "$customer", total: { $sum: "$amount" } } } ]) 매칭 및 그룹화
db.users.aggregate([ { $project: { name: 1, year: { $year: "$createdAt" } } } ]) 필드 프로젝트
db.orders.aggregate([ { $sort: { amount: -1 } }, { $limit: 5 } ]) 정렬 및 제한
db.orders.aggregate([ { $unwind: "$items" } ]) 배열 풀기
db.orders.aggregate([ { $lookup: { from: "users", localField: "userId", foreignField: "_id", as: "user" }} ]) 컬렉션 조인

📊 그룹 연산자

{ $sum: "$amount" } 값 합계
{ $avg: "$price" } 평균 값
{ $min: "$date" } 최소 값
{ $max: "$date" } 최대 값
{ $first: "$name" } 첫 번째 값
{ $last: "$name" } 마지막 값
{ $push: "$item" } 배열에 추가
{ $addToSet: "$tag" } 배열에 고유 값 추가

📇 인덱스

🔧 인덱스 작업

db.users.createIndex({ email: 1 }) 오름차순 인덱스 생성
db.users.createIndex({ score: -1 }) 내림차순 인덱스 생성
db.users.createIndex({ email: 1 }, { unique: true }) 유니크 인덱스 생성
db.users.createIndex({ name: 1, age: -1 }) 복합 인덱스
db.users.createIndex({ bio: "text" }) 텍스트 인덱스
db.places.createIndex({ location: "2dsphere" }) 지리공간 인덱스
db.logs.createIndex( { createdAt: 1 }, { expireAfterSeconds: 3600 } ) TTL 인덱스
db.users.createIndex( { email: 1 }, { partialFilterExpression: { status: "active" } } ) 부분 인덱스
db.users.getIndexes() 인덱스 나열
db.users.dropIndex("email_1") 인덱스 삭제
db.users.dropIndexes() 모든 인덱스 삭제

🛠️ 관리

👤 사용자 관리

db.createUser({ user: "admin", pwd: "pass", roles: ["readWrite"] }) 사용자 생성
db.updateUser("admin", { pwd: "newpass" }) 사용자 업데이트
db.dropUser("admin") 사용자 삭제
db.getUsers() 사용자 나열
db.grantRolesToUser("user", ["dbAdmin"]) 역할 부여

💾 백업 & 모니터링

mongodump --db=dbname --out=/backup/ 데이터베이스 백업
mongorestore --db=dbname /backup/dbname/ 데이터베이스 복원
mongoexport --db=db --collection=col --out=file.json 컬렉션 내보내기
mongoimport --db=db --collection=col --file=file.json 컬렉션 가져오기
db.serverStatus() 서버 상태
db.currentOp() 현재 작업
db.collection.stats() 컬렉션 통계

📊 성능

db.collection.find().explain("executionStats") 쿼리 실행 통계
db.setProfilingLevel(1, { slowms: 100 }) 프로파일링 활성화
db.system.profile.find() 느린 쿼리 보기
db.collection.validate() 컬렉션 유효성 검사
db.repairDatabase() 데이터베이스 복구

💡 팁 & 모범 사례

유용한 팁

  • 인덱스 사용: 자주 조회하는 필드에 인덱스 생성
  • 쿼리 분석: explain()으로 쿼리 성능 분석
  • 스키마 설계: 1:1 및 1:소수 관계에 데이터 임베드
  • 큰 배열 피하기: 무제한으로 커지는 배열은 성능 문제 유발
  • 프로젝션 사용: 필요한 필드만 가져오기
  • 복합 인덱스: 순서 중요 - 동등, 정렬, 범위
  • ObjectId에 시간 포함: id.getTimestamp()로 타임스탬프 포함
  • 문서 크기 제한: 최대 문서 크기는 16MB