updateOne 을 사용하여 단일 문서 업데이트
이 단계에서는 MongoDB 컬렉션의 단일 문서를 수정하는 방법을 배웁니다. updateOne() 메서드와 $set 연산자를 함께 사용하여 특정 문서의 필드 값을 변경합니다.
먼저 MongoDB Shell 을 열어 데이터베이스와 상호 작용합니다.
mongosh
쉘에 접속한 후, 준비된 mylab_database로 전환합니다.
use mylab_database
books 컬렉션의 현재 문서를 살펴보겠습니다. .pretty() 메서드는 출력을 더 읽기 쉽게 포맷합니다.
db.books.find().pretty();
세 개의 초기 도서 문서가 표시되어야 합니다. _id 값은 환경에 따라 고유합니다.
[
{
_id: ObjectId("..."),
title: 'JavaScript Fundamentals',
author: 'Mike Johnson',
year: 2022,
pages: 350
},
{
_id: ObjectId("..."),
title: 'Python Deep Dive',
author: 'Sarah Williams',
year: 2021,
pages: 450
},
{
_id: ObjectId("..."),
title: 'Machine Learning Basics',
author: 'John Doe',
year: 2020,
price: 39.99
}
]
이제 "JavaScript Fundamentals" 책의 출판 연도를 2023으로 업데이트해 보겠습니다.
db.books.updateOne(
{ title: "JavaScript Fundamentals" },
{ $set: { year: 2023 } }
);
이 명령을 자세히 살펴보겠습니다.
updateOne(): 필터와 일치하는 첫 번째 문서를 찾아 업데이트하는 메서드입니다.
{ title: "JavaScript Fundamentals" }: 이것은 필터 문서입니다. MongoDB 에 title 필드가 "JavaScript Fundamentals"인 문서를 찾도록 지시합니다.
{ $set: { year: 2023 } }: 이것은 업데이트 문서입니다. $set 연산자는 year 필드의 값을 2023으로 바꿉니다.
이 명령은 작업을 확인하는 결과 객체를 반환합니다.
{
"acknowledged": true,
"insertedId": null,
"matchedCount": 1,
"modifiedCount": 1,
"upsertedCount": 0
}
matchedCount: 1은 필터와 일치하는 문서가 하나임을 나타내고, modifiedCount: 1은 문서 하나가 성공적으로 업데이트되었음을 나타냅니다.
변경 사항을 확인하려면 문서를 다시 찾습니다.
db.books.findOne({ title: "JavaScript Fundamentals" });
출력에는 새 연도로 업데이트된 문서가 표시됩니다.
{
_id: ObjectId("..."),
title: 'JavaScript Fundamentals',
author: 'Mike Johnson',
year: 2023,
pages: 350
}