본문 바로가기

반응형

Database/MongoDB

(7)
MongoDB #6 (VSCode로 MongoDB 사용하기) 환경 세팅npm init --y # node 패키지 설치npm i -D typescript ts-node @types/node # 라이브러리 설치tsc --init # tsconfig.json 설정 파일 생성npm i mongodb # MongoDB 패키지 설치npm i -D @types/mongodb 서버 실행ts-node src/index.ts MongoDB에 연결하고 DB 선택하기mkdir -p src/mongodbcd src/mongodbtouch connectAndUseDB.ts index.tscd ../.. src/mongodb/connectAndUseDB.tsimport { MongoClient, Db } from "mongodb";export type Mongo..
MongoDB #5 (집계) 집계 파이프라인 기본$match는 SQL의 'WHERE', $group은 SQL의 'GROUP BY' 역할.db.orders.aggregate([ { $match: { status: "completed" } }, // 필터링 { $group: { // 그룹화 _id: "$customerId", totalAmount: { $sum: "$amount" }, orderCount: { $sum: 1 } }}, { $sort: { totalAmount: -1 } }, // 정렬 { $limit: 10 } // 제한]) 주요 집계 단계($sort와 $limit은 이전 포스팅에서, $match(필터링)와 $gr..
MongoDB #4 (인덱싱) 기본// 단일 필드 인덱스db.users.createIndex({ email: 1 }) // 오름차순db.users.createIndex({ age: -1 }) // 내림차순// 복합 인덱스db.users.createIndex({ "address.city": 1, age: -1 })// 고유 인덱스db.users.createIndex( { email: 1 }, { unique: true }) 특수 인덱스// 부분 인덱스db.users.createIndex( { age: 1 }, { partialFilterExpression: { age: { $gte: 18 } } })// 텍스트 인덱스db.articles.createIndex({ title: "text", ..
MongoDB #3 (쿼리 및 필터링) 비교 연산자// 같음db.users.find({ age: 30 })// 크기 비교db.users.find({ age: { $gt: 25 } }) // 초과 (greater than)db.users.find({ age: { $gte: 25 } }) // 이상 (greater than & equal)db.users.find({ age: { $lt: 35 } }) // 미만 (less than)db.users.find({ age: { $lte: 35 } }) // 이하 (less than & equal)db.users.find({ age: { $ne: 30 } }) // 같지 않음 (not equal)// 범위db.users.find({ age: { $gte: 25, ..
MongoDB #2 (기본 명령어, CRUD) 기본 명령어# 데이터베이스 접속mongosh# DB 선택use testdb# 데이터 삽입db.users.insertOne({ name: "Jaehee", age: 30 })# 전체 조회db.users.find()# 특정 조건 조회db.users.find({ age: { $gt: 25 } }) CRUDDBMS 쪽에서는 CRUD를 SIUD(select, insert, update, delete)로, MongoDB에선 FIUD(find, insert, update, delete) 로 쓴다. 1. Create (데이터 생성)단일 삽입 (insertOne)db.users.insertOne({ name: "Jaehee", age: 28, email: "jaehee@example.com"})다중 삽입 (in..
MongoDB #1 (소개) JSON 기반의 문서(Document)형 NoSQL 데이터베이스 - 특징 : 스키마가 유연하고, 고성능 읽기/쓰기, 수평 확장 가능문서 지향: JSON 형태의 문서로 데이터 저장스키마 유연성: 고정된 스키마 없이 동적 구조 지원확장성: 수평적 확장(샤딩) 지원고성능: 인덱싱과 집계 파이프라인 제공고가용성: 복제 세트를 통한 자동 장애 복구- 사용언어 : Node.js, Python, Java 등 다양한 언어 지원- 데이터형태 : BSON(Binary JSON) 포맷 사용 구조Database : 데이터베이스 하나 (RDB의 DB와 동일)Collection : 테이블과 유사, 문서(Document)들의 집합Document : 하나의 JSON 객체처럼 생긴 데이터 단위Field : JSON의 키-값 쌍..
MongoDB #0 (설치 & 세팅) MongoDB 설치 MongoDB 사이트 접속'products' 탭에서 'community edition 클릭'https://www.mongodb.com/ 설치 파일 눌러서 Complete 선택, 그 뒤로는 건들지 말고 Next 눌러서 설치. Mongo DB shell 설치 package를 'msi'로 바꿔서 아래 다운로드 버튼 클릭https://www.mongodb.com/try/download/shell 터미널 혹은 git bash 에서 입력mongosh

반응형