MongoDB 설치 가이드
공식 홈페이지에서 최신 버전을 다운로드한 후 다음 경로에 압축 해제합니다:
/opt/local
환경 변수 설정 파일을 수정합니다:
vim ~/.bash_profile
다음과 같은 구성 요소를 추가할 수 있습니다:
# JDK 환경 변수
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_321.jdk/Contents/Home
PATH=$JAVA_HOME/bin:$PATH:.
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
export JAVA_HOME
export PATH
export CLASSPATH
# MySQL 설정
export PATH=$PATH:/usr/local/mysql/bin
alias mysql=/usr/local/mysql/bin/mysql
# Maven 설정
export MAVEN_HOME=/Library/apache-maven-3.8.4
export PATH=$PATH:$MAVEN_HOME/bin
# Python 3.9 환경
export PATH=$PATH:/usr/local/bin/python3.9/bin
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
# Android SDK 경로
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools
# MongoDB 환경 변수
export PATH=${PATH}:/opt/local/mongoDB/bin
# Homebrew 설정
export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/
eval $(/usr/local/Homebrew/bin/brew shellenv)
export PATH="/usr/local/opt/ruby/bin:$PATH"
변경 사항을 적용하기 위해 다음 명령어를 실행합니다:
source .bash_profile
버전 확인 명령어:
mongod --version
예상 출력:
db version v5.0.6
Build Info: { ... }
데이터 디렉토리 미설정 시 오류:
mkdir ~/data cd ~/data sudo mongod --dbpath=/Users/lifechat/data
서비스 시작 명령어:
sudo mongod --dbpath /opt/local/var/mongodb --logpath /opt/local/var/log/mongodb/mongo.log
관리 툴 추천: MongoDB Compass
CRUD 작업 예시
mongoose를 사용한 데이터 조작 예제:
const crypto = require('crypto');
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/gzhipin');
const conn = mongoose.connection;
conn.on('connected', () => console.log('MongoDB 연결 성공'));
const userDefinition = new mongoose.Schema({
username: { type: String, required: true },
password: { type: String, required: true },
userType: { type: String, enum: ['admin', 'user'] },
avatar: { type: String }
});
const UserEntity = mongoose.model('User', userDefinition);
async function saveData() {
const newUser = new UserEntity({
username: 'Lifechat',
password: crypto.createHash('sha256').update('123').digest('hex'),
userType: 'user'
});
await newUser.save();
}
async function fetchData() {
const users = await UserEntity.find({ username: 'Lifechat' });
console.log('검색 결과:', users);
}
async function updateRecord() {
await UserEntity.findByIdAndUpdate(
'633a783a023e7d37ed039b06',
{ username: 'Jack' },
{ new: true }
);
}
async function deleteRecord() {
await UserEntity.deleteOne({ _id: '633a783a023e7d37ed039b06' });
}