본문 바로가기

Database

Mongoose 가장 최근 혹은 오래된 항목 가져오기

728x90

mognoose를 사용하며 데이터 중 가장 최근, 오래된 데이터를 가져와야 할 경우가 생겼다.

다양한 방법이 있을 것이고, 더 효율적인 방법도 있겠지만 내가 해봤던 것을 말해본다.

 

일단 가장 아무 생각 안 하고 했을 때 방법은 find()로 가져와서 기준이 되는 date를 비교하는 건데 이건 굉장히 비효율적이다.

얼마나 있을지 모르지만 많은 데이터를 다 가져온다는 거 자체가 무리라고 본다.

 

그래서 query로 해결할 수 있는 방법을 찾아본 결과 sort를 사용하면 되는 것 같았다.

Model.findOne().sort({ dateCreated: 1 })

dateCreated는 당연히 다른 필드들로 충분히 바뀔 수 있다.

1과 -1 로 줄 수 있는데 1은 가장 오래된 값을 가져오는 것이고, -1은 가장 최근의 값을 가져오게 된다.

 

아마 그냥 정렬해서 가장 위에 있는 데이터를 findOne 하는 것 같다.

반응형