백엔드(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));

첫 번째로 찾은 영화 출력
Alien 찾기

 

 

위에서 설명한 findOne 메서드에 대한 공식 문서에는 몇 가지 중요한 내용이 있습니다.

  1. 조건 (Conditions):
    • conditions 파라미터는 Object 형태로 전달되며, 이는 해당 문서를 찾기 위한 검색 조건입니다. 이 조건들은 몽구스 스키마(Schema)의 형식에 따라 자동으로 캐스팅(casting)됩니다.
  2. 선택적인 프로젝션 (Optional Projection):
    • projection 파라미터는 선택적으로 사용될 수 있습니다. 이를 통해 반환되는 필드를 제한할 수 있으며, 이에 대한 더 자세한 내용은 몽구스 쿼리 프로토타입(Query.prototype)의 select() 메서드에서 확인할 수 있습니다.
  3. 옵션 (Options):
    • options 파라미터는 추가적인 설정을 제공합니다. 여기에는 Query.prototype.setOptions()에서 확인할 수 있는 옵션들이 있습니다.
  4. 참고 사항 (Notes):
    • conditions는 선택 사항이며, null 또는 undefined인 경우 몽구스는 빈 findOne 명령을 MongoDB에 보내어 임의의 문서를 반환합니다. _id로 쿼리를 하는 경우 findById()를 사용하는 것이 좋습니다.
  5. 예제 (Example):
    • 다음은 findOne 메서드를 사용한 예제입니다.
    • // 'country'가 'Croatia'인 모험 중 하나 찾기, 없으면 null 반환
      await Adventure.findOne({ country: 'Croatia' }).exec();
      
      // 'country'가 'Croatia'인 모험의 이름과 길이만 선택
      await Adventure.findOne({ country: 'Croatia' }, 'name length').exec();
  6. 콜백(Callback) 미지원 (No Longer Accepts a Callback):
    • Model.findOne()은 이제 콜백을 더 이상 지원하지 않습니다.

이렇게 몇 가지 예제를 통해 Mongoose로 데이터를 찾는 방법을 살펴봤습니다. 다음 글에서는 Mongoose를 사용하여 데이터를 업데이트하는 방법에 대해 자세히 알아보겠습니다. 계속해서 함께 공부해 나가요!

728x90