반응형
mongosh
(MongoDB Shell)를 사용하여 기본적인 CRUD(Create, Read, Update, Delete) 작업을 수행하는 예제를 만들어 보겠습니다.
터미널이나 명령 프롬프트에서 mongosh
를 실행하여 MongoDB Shell에 접속한 후 다음 명령어들을 차례로 입력해보세요.
예제 시나리오: mydatabase
데이터베이스의 users
컬렉션에 사용자 정보를 저장하고 관리합니다.
1. 데이터 베이스에 연결합니다.
// 1. 사용할 데이터베이스 선택 (없으면 자동으로 생성됩니다)
use mydatabase
2. 데이터를 생성합니다.
// --- Create (데이터 생성) ---
// 1.1. 단일 문서 삽입 (insertOne)
// 'name'이 "Alice", 'age'가 30, 'city'가 "Seoul"인 사용자 추가
db.users.insertOne({ name: "Alice", age: 30, city: "Seoul" })
// 결과 예시: { acknowledged: true, insertedId: ObjectId("...") }
// 1.2. 여러 문서 삽입 (insertMany)
// Bob과 Charlie 사용자 정보 동시에 추가
db.users.insertMany([
{ name: "Bob", age: 25, city: "Busan", interests: ["music", "sports"] },
{ name: "Charlie", age: 35, city: "Seoul", status: "active" }
])
// 결과 예시: { acknowledged: true, insertedIds: [ ObjectId("..."), ObjectId("...") ] }
3. 데이터를 읽어 봅니다.
// --- Read (데이터 조회) ---
// 2.1. 모든 문서 조회 (find)
// users 컬렉션의 모든 사용자 정보 출력
db.users.find()
// 2.2. 특정 조건에 맞는 문서 조회 (find)
// 'city'가 "Seoul"인 사용자 조회
db.users.find({ city: "Seoul" })
// 'age'가 30 이상인 사용자 조회 ($gte: greater than or equal)
db.users.find({ age: { $gte: 30 } })
// 2.3. 특정 조건에 맞는 단일 문서 조회 (findOne)
// 'name'이 "Bob"인 첫 번째 사용자 조회
db.users.findOne({ name: "Bob" })
4. 데이터를 업데이트 합니다.
// --- Update (데이터 수정) ---
// 3.1. 조건에 맞는 첫 번째 문서 수정 (updateOne)
// 'name'이 "Alice"인 사용자의 'age'를 31로 변경
db.users.updateOne(
{ name: "Alice" }, // 업데이트할 문서를 찾는 조건
{ $set: { age: 31 } } // 변경할 내용 ($set 연산자 사용)
)
// 결과 예시: { acknowledged: true, matchedCount: 1, modifiedCount: 1 }
// Alice 정보 다시 확인
db.users.findOne({ name: "Alice" })
// 3.2. 조건에 맞는 여러 문서 수정 (updateMany)
// 'city'가 "Seoul"인 모든 사용자의 'status'를 "verified"로 변경 (없으면 필드 추가)
db.users.updateMany(
{ city: "Seoul" }, // 업데이트할 문서를 찾는 조건
{ $set: { status: "verified" } } // 변경할 내용
)
// 결과 예시: { acknowledged: true, matchedCount: 2, modifiedCount: 2 } (Alice, Charlie가 해당)
// Seoul 사용자 정보 다시 확인
db.users.find({ city: "Seoul" })
// 3.3. 필드 값 증가 (updateOne + $inc)
// 'name'이 "Bob"인 사용자의 'age'를 1 증가
db.users.updateOne(
{ name: "Bob" },
{ $inc: { age: 1 } } // $inc 연산자는 지정한 값만큼 필드 값을 증가/감소시킴
)
// Bob 정보 다시 확인
db.users.findOne({ name: "Bob" }) // age가 26으로 변경되었을 것임
5. 데이터를 삭제해 봅니다.
// --- Delete (데이터 삭제) ---
// 4.1. 조건에 맞는 첫 번째 문서 삭제 (deleteOne)
// 'name'이 "Charlie"인 사용자 삭제
db.users.deleteOne({ name: "Charlie" })
// 결과 예시: { acknowledged: true, deletedCount: 1 }
// 4.2. 조건에 맞는 여러 문서 삭제 (deleteMany)
// 'age'가 30 미만인 모든 사용자 삭제 (현재 Bob이 해당될 수 있음)
db.users.deleteMany({ age: { $lt: 30 } }) // $lt: less than
// 결과 예시: { acknowledged: true, deletedCount: 1 } (Bob이 삭제됨)
6. 데이터가 삭제되었는 지 확인 합니다.
// --- 최종 확인 ---
// 현재 남아있는 모든 사용자 정보 조회
db.users.find()
// (Alice만 남아있거나, 조건에 따라 아무도 없을 수 있습니다)
// (선택 사항) 컬렉션의 모든 데이터 삭제
// db.users.deleteMany({})
// (선택 사항) 컬렉션 자체를 삭제
// db.users.drop()
// (선택 사항) 데이터베이스 자체를 삭제 (주의!)
// db.dropDatabase()
이 예제들을 mongosh
에 직접 입력하면서 각 명령의 결과와 데이터의 변화를 확인해 보시면 MongoDB의 기본적인 CRUD 작업 흐름을 이해하는 데 도움이 될 것입니다.
반응형
'DB > MongoDB' 카테고리의 다른 글
[ MongoDB ] Windows에 MongoDB 설치하는 방법 (0) | 2025.05.05 |
---|---|
[ MongoDB ] MongoDB 설치하기 (0) | 2019.05.08 |