백엔드(Backend)/데이터베이스

[MongoDB] Mongoose로 업데이트하기

jjinny_0609 2023. 11. 29. 22:19
728x90

안녕하세요! 이번 강의에서는 'Mongoose로 업데이트하기'에 대해 알아보겠습니다. 영화 데이터를 업데이트하는 몇 가지 방법이 있습니다.

Update 메서드: updateOne 및 updateMany

가장 먼저 'update'라는 말로 시작되는 메서드들을 살펴봅시다. updateOneupdateMany가 여기에 해당됩니다. 이들 메서드는 갱신된 정보를 반환하지 않습니다. MongoDB의 기본 동작과 마찬가지로 'nModified'를 통해 갱신된 항목의 수만을 알려줍니다.

// updateOne 예제
Movie.updateOne({ title: 'Amadeus' }, { $set: { year: 1984 } }).exec();

// updateMany 예제
Movie.updateMany({ title: { $in: ['Amadeus', 'Stand By Me'] } }, { $set: { rating: 10 } }).exec();

 

findByIdAndUpdate 및 findOneAndUpdate

findByIdAndUpdatefindOneAndUpdate 메서드는 조건에 맞는 문서를 찾아 업데이트하고, 업데이트된 문서를 반환합니다. 이 메서드들은 Promise를 사용하여 결과를 처리합니다.

// findByIdAndUpdate 예제
Movie.findByIdAndUpdate(movieId, { $set: { rating: 7.8 } }, { new: true }).exec();

// findOneAndUpdate 예제
Movie.findOneAndUpdate({ title: 'The Iron Giant' }, { $set: { rating: 7.0 } }, { new: true }).exec();

{ new: true } 옵션을 사용하면 업데이트 후의 문서를 반환받을 수 있습니다.

중요한 경고 사항

기본적으로 findOneAndUpdate는 갱신된 문서 대신 이전 버전을 반환합니다. 이를 수정하려면 { new: true } 옵션을 사용하세요. 또한, Mongoose 설정에서 useFindAndModify를 false로 설정하여 경고를 제거할 수 있습니다.

 

이제 Mongoose를 사용하여 데이터를 업데이트하는 다양한 방법을 알게 되었습니다. 다음 시간에는 '삭제'에 대해 배우겠습니다.

 

계속해서 Mongoose의 다양한 기능을 활용하여 데이터를 다루는 방법에 대해 탐험해보세요!

728x90