.sort({ createAt: -1 }) 으로 정렬시
같은 시간에 만든 것들은 랜덤으로 출력되므로
db에 입력 된 순으로 순차적으로 출력시
sort({ $natural: -1 })
를 사용해보자.
ObjectID인 _id로 해도 된다.
실전프로젝트 때 예시
// 메인 페이지
router.get('/', async (req, res) => {
try {
const page = Number(req.query.page || 1);
const perPage = Number(req.query.perPage || 6)
const roomLength = await Room.find({});
const mainLength = roomLength.length;
//페이지네이션
const roomList = await Room.find({})
.sort({ $natural: -1 })
.skip(perPage * (page - 1)) //perPage가 6이라면 1page로 왔을 때 6*(1-1) = 0이라서 스킵할게 없으니 0부터 6까지 출력
.limit(perPage)
res.status(200).json({
result: true,
roomList,
mainLength,
})
} catch (error) {
return res.status(400).send({
result: false,
msg: '스터디를 불러올 수 없습니다.',
errmsg: error.message,
});
}
});
순차적으로 생성된 아이디 순으로 출력이 잘 되었다.