MongoDB updateOne()
2026년 8월 28일
MongoDB updateOne()
조건에 맞는 문서 하나의 일부 필드를 바꾼다. 나머지 필드는 그대로 둔다.
JavaScript
| 자리 | 내용 |
|---|---|
filter | 어느 문서를 (MongoDB 쿼리 연산자) |
update | 어떻게 바꿀지 — $ 연산자 필수 (MongoDB 갱신 연산자) |
options | upsert, arrayFilters 등 |
셸
JavaScript
파이썬
Python
$를 빠뜨리면 문서가 통째로 날아간다
JavaScript
Mermaid스크롤로 확대 · 드래그로 이동
최신 서버는 이 형태를 거부하지만, 드라이버·버전에 따라 그대로 교체된다. 의도가 교체라면 MongoDB replaceOne()을 명시적으로 쓴다.
여러 개가 맞으면 하나만
updateOne은 조건에 맞는 첫 문서 하나만 바꾼다. 어느 것이 "첫"인지는 보장되지 않는다. 전부 바꾸려면 MongoDB updateMany().
upsert 옵션
JavaScript
없으면 만든다. $setOnInsert는 만들어질 때만 적용돼 최초 시각을 보존한다 → upsert
원자성
한 문서에 대한 updateOne은 원자적이다. 중간 상태를 다른 요청이 볼 수 없다.
Python
바꾼 결과를 돌려받아야 한다면 MongoDB findOneAndUpdate()를 쓴다.
결과 읽기
Python
matched=1, modified=0은 찾았지만 내용이 이미 같았다는 뜻이다. 실패가 아니다 → MongoDB 쓰기 결과 객체
한 줄 정리
updateOne(filter, {$set: ...})이 기본형이고, $를 빠뜨리면 교체, 여러 건은 updateMany, 결과를 받으려면 findOneAndUpdate.
관련
- MongoDB updateMany()
- MongoDB replaceOne()
- MongoDB findOneAndUpdate()
- MongoDB 갱신 연산자
- upsert
- MongoDB 쓰기 결과 객체
- MongoDB CRUD 메서드