MongoDB 설치 및 데이터 조작 방법

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' });
}

태그: MongoDB Mongoose CRUD Node.js 데이터베이스관리

6월 28일 17:26에 게시됨