일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- API
- 개발
- Baekjoon
- Spring
- 애자일프로그래밍
- JPA
- 클린코드
- 읽기쉬운코드
- 개발자
- 코딩
- database
- Elasticsearch
- 스프링
- 코딩테스트
- 프레임워크
- 알고리즘
- 엘라스틱서치
- 코드
- 애자일기법
- 그리디알고리즘
- 데이터베이스
- framework
- spring boot
- 백준
- 그리디
- cleancode
- Java
- mongoDB
- ES
- 자바
- Today
- Total
튼튼발자 개발 성장기🏋️
[MongoDB] 도큐먼트 생성, 갱신, 삭제 본문
도큐먼트 생성
1. insertOne(): 하나의 도큐먼트 삽입
하나의 도큐먼트를 컬렉션에 삽입할 때 사용된다.
db.movies.insertOne({"title": "Stand by Me", "year": 1986});
위 예제는 movies 컬렉션에 title이 "Stand by Me"이고 year가 1986인 도큐먼트를 삽입한다.
2. insertMany(): 여러 도큐먼트 삽입
여러 개의 도큐먼트를 한 번에 삽입할 때 사용된다.
db.movies.insertMany([ {"title": "Stand by Me", "year": 1986}, {"title": "The Shawshank Redemption", "year": 1994}, {"title": "Forrest Gump", "year": 1994} ]);
위 예제는 movies 컬렉션에 세 개의 도큐먼트를 삽입한다.
도큐먼트 갱신
1. updateOne(): 하나의 도큐먼트 갱신(수정)
updateOne()은 하나의 도큐먼트를 수정한다.
db.movies.updateOne( { "title": "Stand by Me" }, { $set: { "year": 1987 } } );
위 예제는 title이 "Stand by Me"인 도큐먼트의 year 값을 1987로 수정한다.
2. updateMany(): 여러 도큐먼트 갱신
updateMany()는 여러 도큐먼트를 수정한다.
db.movies.updateMany( { "year": 1994 }, { $set: { "director": "Frank Darabont" } } );
위 예제는 year가 1994인 모든 도큐먼트에 director 필드를 추가하거나 수정한다.
3. replaceOne(): 도큐먼트 교체
replaceOne()은 기존 도큐먼트를 완전히 새로운 도큐먼트로 교체한다.
db.movies.replaceOne( { "title": "Stand by Me" }, { "title": "Stand by Me", "year": 1986, "genre": "Drama" } );
위 예제는 title이 "Stand by Me"인 도큐먼트를 새로운 도큐먼트로 완전히 교체한다.
4. upsert: 존재하지 않으면 삽입, 있으면 수정
upsert는 update와 비슷하지만, 조건에 맞는 도큐먼트가 없으면 새로 삽입한다.
db.movies.updateOne( { "title": "The Green Mile" }, { $set: { "year": 1999, "genre": "Drama" } }, { upsert: true } );
위 예제는 title이 "The Green Mile"인 도큐먼트를 찾아서 수정하거나, 없으면 새로운 도큐먼트를 삽입한다.
5. findOneAndUpdate(): 도큐먼트 검색 후 수정 (MongoDB 5.0 이상)
findOneAndUpdate()는 조건에 맞는 도큐먼트를 하나 찾은 후, 주어진 업데이트 작업을 수행한다. 이 메소드는 도큐먼트를 부분적으로 수정할 때 사용된다. 주로 update 연산자(예: $set, $inc, $push 등)를 사용하여 도큐먼트의 일부 필드를 수정한다.
db.movies.findOneAndUpdate(
{ "title": "Stand by Me" },
{ $set: { "year": 1986 } }
);
위 예제는 title이 "Stand by Me"인 도큐먼트를 찾고, 그 도큐먼트의 year를 1986으로 수정한다. returnDocument: "after" 옵션은 수정된 후의 도큐먼트를 반환한다.
6. findOneAndReplace(): 도큐먼트 검색 후 교체 (MongoDB 5.0 이상)
findOneAndReplace()는 조건에 맞는 도큐먼트를 찾은 후, 전체 도큐먼트를 교체하는 방식이다. 이 메소드는 주어진 새로운 도큐먼트로 기존 도큐먼트를 완전히 교체한다. 기존 도큐먼트는 수정되지 않고, 새로운 도큐먼트로 덮어씌워진다.
db.movies.findOneAndReplace(
{ "title": "Stand by Me" },
{ "title": "Stand by Me", "year": 1986, "director": "Rob Reiner" }
);
위 예제는 title이 "Stand by Me"인 도큐먼트를 찾아, 전체 도큐먼트를 새로운 도큐먼트로 교체한다. 새 도큐먼트는 title, year, director 필드를 포함하고 있다.
도큐먼트 삭제
1. deleteOne(): 하나의 도큐먼트 삭제
deleteOne() 메소드는 조건에 맞는 도큐먼트를 하나만 삭제한다. 만약 여러 도큐먼트가 조건에 맞더라도, 첫 번째 도큐먼트만 삭제된다.
db.movies.deleteOne({ "title": "Stand by Me" });
위 예제는 title이 "Stand by Me"인 도큐먼트를 movies 컬렉션에서 하나만 삭제한다.
2. deleteMany(): 여러 도큐먼트 삭제
deleteMany() 메소드는 조건에 맞는 모든 도큐먼트를 삭제한다.
db.movies.deleteMany({ "year": 1994 });
위 예제는 year가 1994인 모든 도큐먼트를 movies 컬렉션에서 삭제한다.
3. findOneAndDelete(): 도큐먼트 검색 후 삭제 (MongoDB 5.0 이상)
MongoDB 5.0 이상에서는 findAndDelete() 메소드가 추가되었다다. 이 메소드는 조건에 맞는 도큐먼트를 찾고, 해당 도큐먼트를 삭제하며, 삭제된 도큐먼트를 반환한다.
db.movies.findOneAndDelete({ "title": "The Green Mile" });
위 예제는 title이 "The Green Mile"인 도큐먼트를 찾아 삭제하고, 삭제된 도큐먼트를 반환한다.
4. drop(): 컬렉션 삭제
drop() 메소드는 컬렉션 자체를 삭제한다. 컬렉션에 있는 모든 도큐먼트가 삭제되며, 컬렉션 자체도 제거된다.
db.movies.drop();
위 예제는 movies 컬렉션을 삭제한다. 컬렉션과 그 안에 있는 모든 도큐먼트가 삭제된다.
5. dropDatabase(): 데이터베이스 삭제
dropDatabase() 메소드는 현재 데이터베이스를 삭제한다. 이 메소드를 실행하면 해당 데이터베이스와 그 안에 포함된 모든 컬렉션, 도큐먼트가 삭제된다.
db.dropDatabase();
위 예제는 현재 사용 중인 데이터베이스를 삭제한다.
'기타 > MongoDB' 카테고리의 다른 글
[MongoDB] 특수 인덱스 (0) | 2025.03.17 |
---|---|
[MongoDB] 인덱싱 #2 (0) | 2025.03.16 |
[MongoDB] 인덱싱 #1 (0) | 2025.03.15 |
[MongoDB] MongoDB의 기본 (1) | 2025.03.03 |
[MongoDB] MongoDB란? (0) | 2025.03.01 |