백엔드(Backend)/데이터베이스
[MongoDB] Mongoose로 찾기
jjinny_0609
2023. 11. 29. 19:20
728x90
안녕하세요! 이번에는 Mongoose로 데이터를 찾는 방법을 예제와 함께 살펴보겠습니다. 시작해볼까요?
find 메서드를 사용한 데이터 조회:
// 모든 영화 찾기
Movie.find().then(data => console.log(data));
// 15세 관람가 영화 찾기
Movie.find({ grade: "15" }).then(data => console.log(data));
// 2015년 이후 개봉한 영화 찾기
Movie.find({ releaseYear: { $gte: 2015 } }).then(data => console.log(data));
findOne 메서드를 사용한 데이터 조회:
// 첫 번째로 찾은 영화 출력
Movie.findOne().then(movie => console.log(movie));
// 'Alien' 찾기
Movie.findOne({ title: "Alien" }).then(movie => console.log(movie));
위에서 설명한 findOne 메서드에 대한 공식 문서에는 몇 가지 중요한 내용이 있습니다.
- 조건 (Conditions):
- conditions 파라미터는 Object 형태로 전달되며, 이는 해당 문서를 찾기 위한 검색 조건입니다. 이 조건들은 몽구스 스키마(Schema)의 형식에 따라 자동으로 캐스팅(casting)됩니다.
- 선택적인 프로젝션 (Optional Projection):
- projection 파라미터는 선택적으로 사용될 수 있습니다. 이를 통해 반환되는 필드를 제한할 수 있으며, 이에 대한 더 자세한 내용은 몽구스 쿼리 프로토타입(Query.prototype)의 select() 메서드에서 확인할 수 있습니다.
- 옵션 (Options):
- options 파라미터는 추가적인 설정을 제공합니다. 여기에는 Query.prototype.setOptions()에서 확인할 수 있는 옵션들이 있습니다.
- 참고 사항 (Notes):
- conditions는 선택 사항이며, null 또는 undefined인 경우 몽구스는 빈 findOne 명령을 MongoDB에 보내어 임의의 문서를 반환합니다. _id로 쿼리를 하는 경우 findById()를 사용하는 것이 좋습니다.
- 예제 (Example):
- 다음은 findOne 메서드를 사용한 예제입니다.
-
// 'country'가 'Croatia'인 모험 중 하나 찾기, 없으면 null 반환 await Adventure.findOne({ country: 'Croatia' }).exec(); // 'country'가 'Croatia'인 모험의 이름과 길이만 선택 await Adventure.findOne({ country: 'Croatia' }, 'name length').exec();
- 콜백(Callback) 미지원 (No Longer Accepts a Callback):
- Model.findOne()은 이제 콜백을 더 이상 지원하지 않습니다.
이렇게 몇 가지 예제를 통해 Mongoose로 데이터를 찾는 방법을 살펴봤습니다. 다음 글에서는 Mongoose를 사용하여 데이터를 업데이트하는 방법에 대해 자세히 알아보겠습니다. 계속해서 함께 공부해 나가요!
728x90