검색
검색
공개 노트 검색
회원가입로그인

5장: 기본 CRUD 연산

Chapter 5: Basic CRUD Operations

데이터베이스에서 핵심이 되는 작업은 정보를 입력하고, 불러오며, 변경하고, 삭제하는 일이다. MongoDB 역시 마찬가지다. 이 절에서는 몽고디비에서 가장 기본적이면서 반드시 익혀야 할 CRUD(Create, Read, Update, Delete) 명령들의 원리와 사용법을 실제 예시와 함께 설명한다. 셸 환경에서 모든 예시를 직접 따라하면서 데이터의 흐름을 이해해보자.

데이터 삽입(Create)

새로운 정보를 컬렉션에 추가하려면 insertOne이나 insertMany를 사용한다. 컬렉션이 미리 만들어져 있지 않아도, 첫 삽입과 동시에 자동으로 생성된다. 예를 들어, users라는 컬렉션에 한 명의 사용자를 추가하려면 다음과 같이 입력한다:

db.users.insertOne({ name: "이수연", age: 28, email: "suyeon@example.com" })

여러 명의 사용자를 한 번에 추가하고 싶다면 배열을 이용한다:

db.users.insertMany([
  { name: "박지훈", age: 24 },
  { name: "김나영", age: 31 }
])

데이터 조회(Read)

컬렉션의 정보를 확인할 때는 find가 핵심이다. 별도 조건 없이 모든 문서를 조회할 땐 다음과 같이 입력한다:

db.users.find()

특정 조건을 줄 수도 있다. 예를 들어, 나이가 30세 이상인 사용자만 알고 싶다면:

db.users.find({ age: { $gte: 30 } })

특정 필드만 보고 싶을 땐 projection을 쓴다. 이름과 이메일만 출력할 경우:

db.users.find({}, { name: 1, email: 1, _id: 0 })

데이터 수정(Update)

문서를 수정할 땐 updateOne, updateMany, replaceOne을 사용한다. 보통 updateOne을 예로 들면, 이름이 '이수연'인 사용자의 나이를 29로 바꾸고 싶을 때:

db.users.updateOne(
  { name: "이수연" },
  { $set: { age: 29 } }
)

여러 조건에 해당하는 모든 사용자의 상태 필드를 'A'로 설정하고 싶다면:

db.users.updateMany(
  { age: { $gte: 25 } },
  { $set: { status: "A" } }
)

데이터 삭제(Delete)

정보를 지울 때는 deleteOne 또는 deleteMany를 쓴다. 한 명만 지우고 싶다면 조건을 지정해서 deleteOne을 쓴다.

db.users.deleteOne({ name: "박지훈" })

나이 30세 미만 사용자를 모두 삭제하려면:

db.users.deleteMany({ age: { $lt: 30 } })

실전에서 자주 쓰는 팁

컬렉션이나 데이터베이스는 데이터를 처음 입력할 때 자동 생성되니 별도의 생성 명령 없이도 자유롭게 작업할 수 있다. 명령들은 대부분 직관적이므로 다양한 조건과 필드를 활용해 데이터를 관리해볼 수 있다. 데이터의 구조가 바뀌거나 신규 정보를 넣고 싶을 때, 혹은 기존 데이터를 업데이트해야 할 때 이 장에서 소개한 CRUD 명령어들이 실전에서 강력한 무기가 된다.

이제 CRUD의 기본기를 익혔다면, 실전에서 다양한 조건과 연산자를 조합해 더욱 복잡한 데이터 처리에도 자연스럽게 대응할 수 있을 것이다.

공유하기
카카오로 공유하기
페이스북 공유하기
트위터로 공유하기
url 복사하기
조회수 : 17
heart