MongoDB = NoSQL 데이터베이스
→ 테이블이 아닌 JSON 형태로 데이터를 저장하는 데이터베이스
| SQL(MySQL 등) | MongoDB |
|---|---|
| 데이터 저장 형태: 테이블 (rows, columns) | JSON 문서 (key-value 쌍) |
| 구조가 고정되어 있음 (스키마 필요) | 자유로운 구조 가능 (필드 추가/삭제 자유) |
| 관계형 데이터 (JOIN 등) | 비관계형 데이터 |
| 예: 학생 테이블 | 예: 학생 document |
{
"name": "엄수현",
"major": "Cybersecurity",
"age": 21,
}
{
"name": "Suhyeon",
"major": "Cybersecurity",
"age": 21
}

데이터 수정하기
문서 오른쪽에 연필 아이콘 클릭 -> Update 클릭

데이터 삭제하기
문서 오른쪽의 휴지통 아이콘 클릭 -> Delete 클릭

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 종료