MongoDB 개념 정리

엄수현·2025년 10월 5일

1. MongoDB란?

MongoDB = NoSQL 데이터베이스
→ 테이블이 아닌 JSON 형태로 데이터를 저장하는 데이터베이스

SQL(MySQL 등)MongoDB
데이터 저장 형태: 테이블 (rows, columns)JSON 문서 (key-value 쌍)
구조가 고정되어 있음 (스키마 필요)자유로운 구조 가능 (필드 추가/삭제 자유)
관계형 데이터 (JOIN 등)비관계형 데이터
예: 학생 테이블예: 학생 document
  • JSON 문서

{
"name": "엄수현",
"major": "Cybersecurity",
"age": 21,
}

2. 실습해보기

2.1 GUI 환경에서 실습

  1. MongoDB Compass(https://www.mongodb.com/products/compass) 설치
  2. Add new connection 클릭 -> MongoDB 서버에 접속
  3. Create Database 클릭 -> 데이터베이스 만들기
  • 데이터 추가하기
    mytestdb > students
    “Insert Document” 클릭하고 아래 내용 입력
{
  "name": "Suhyeon",
  "major": "Cybersecurity",
  "age": 21
}

  • 데이터 수정하기

    문서 오른쪽에 연필 아이콘 클릭 -> Update 클릭

  • 데이터 삭제하기

    문서 오른쪽의 휴지통 아이콘 클릭 -> Delete 클릭

2.2 CLI로 실습

  1. MongoDB shell설치(https://www.mongodb.com/try/download/shell)
  2. 설치 위치로 이동 후 mongosh 치면 MongoDB 서버에 접속
Current Mongosh Log ID: ...
Connecting to: mongodb://127.0.0.1:27017/
Using MongoDB: 7.0.x
Using Mongosh: 2.5.8
test>

이런 화면이 뜨면 접속 성공!
3. use mytestdb -> mytestdb라는 이름의 데이터베이스 생성 & 전환

  • 데이터 추가하기
    db.students.insertOne({ name: "Suhyeon", major: "Cybersecurity", age: 21 })
    * 컬렉션(Collection)은 SQL의 테이블처럼 데이터를 담는 공간인데, 따로 만들 필요 없이 데이터를 넣으면 자동으로 생긴다.

    cf) 여러개 추가하기
    db.students.insertMany([{ name: "semin", major: "AI", age: 20 },{ name: "soo", major: "Design", age: 19 }])

  • 데이터 조회하기
    db.students.find()
    find뒤에 괄호 붙여야함.

//출력예시

[
  {
    _id: ObjectId('68e2ce73e4f8a72dd3cebea4'),
    name: 'Suhyeon',
    major: 'Cybersecurity',
    age: 21
  },
  {
    _id: ObjectId('68e2ceffe4f8a72dd3cebea5'),
    name: 'semin',
    major: 'AI',
    age: 20
  },
  {
    _id: ObjectId('68e2ceffe4f8a72dd3cebea6'),
    name: 'soo',
    major: 'Design',
    age: 19
  }
]
  • 데이터 수정하기
    db.students.updateOne({ name: "Suhyeon" },{ $set: { major: "math" } })

    * { name: "Suhyeon" }: name이 "Suhyeon"인 ❗첫번째❗ 문서를 선택한다.
    * { $set: { major: "math" } }: $set 연산자는 특정 필드의 값을 변경하거나 없을 경우 새로 추가한다. 여기서는 major 값을 "math"로 바꾼다.
    → “Suhyeon”의 전공이 Cybersecurity에서 math 로 바뀐다!

    cf) 여러개 수정하기
    db.students.updateMany({ major: "AI" },{ $set: { major:"Artificial Intelligence" } })
    major가 "AI"인 ❗모든❗ 문서를 선택한다.

  • 데이터 삭제하기
    db.students.deleteOne({ name: "semin" })
    name이 "semin"인 문서를 선택한다.

    cf) 여러개 삭제하기
    db.students.deleteMany({ age: { $lt: 23 } })
    { age: { $lt: 23 } }: $lt(less than)는 “보다 작다”라는 뜻으로, age가 23보다 작은 문서들을 모두 선택한다.

cf) exit : mongosh 종료

0개의 댓글