sort정렬 할 때

leehowook·2022년 8월 10일
0

.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,
    });
  }
});

순차적으로 생성된 아이디 순으로 출력이 잘 되었다.

profile
be higher

0개의 댓글