정렬 순서
mogoose을 활용해서 간단하게 data순서, 정렬을 바꿀 수 있다. asc는 오름차순 / desc는 내림차순이다. 정렬기준을 정하고 해당 값을 적어주면 간단하게 데이터가 보여지는 정렬을 바꿀 수 있다.
Mongoose v7.3.3: Redirect to API
Redirecting to proper API page, please wait This Page requires JavaScript to Redirect old links properly
mongoosejs.com
.sort( { 정렬기준: "asc // desc " } )


홈 화면에 나오는 비디오를 생성일 기준으로 내림차순을 하였다. 기존에는 최근 생성 목록이 제일 하단에 노출되었다.
Search 검색기능
* 진행 과정
라우터 생성 -> 컨트롤러 생성 -> view 화면(pug) -> 컨트롤러 설정
:id -> req.params
|


req.query는 URL에서 데이터를 가져올 때 주로 사용한다. Input name=keyword로 보낸 값이 url로 저장이 된다. 이 값을 가져올 때 사용할 수 있다. 일반적인 검색사이트에서도 자주 볼 수 있다.


문제점 1 : const video가 if문 안에 있기 때문에 render할 때 video값을 주지 못한다. 그래서 if문 안에 res.render을 한 번 더 적어줘도 되지만 그건 너무 구리다. 그래서 업데이트 가능한 let을 선언한 후 업데이트하는 방향으로 코드를 작성하는 것이 좋다.
해결 1 : let 선언해서 값을 업데이트 해주고 마지막 render에서 그 값을 불러온다.
문제점 2 : 검색할 때 정확한 영상 이름으로만 검색이 된다.
해결 2 : regular expression을 사용하여 검색하면 된다.
regular expression
keyword, "i" ---> keyword가 포함된 모든 단어를 검색
^keyword, "i" ---> keyword로 시작하는 단어를 검색
keyword$, "i" ----> keyword로 끝나는 단어를 검색
regular expression을 사용하기 위해서는 regex연산자를 사용해야한다.
"
title: { $regex: new RegExp(keyword,"i") }
키워드가 포함된 타이틀을 찾는다.
title: { $regex: new RegExp(`^${keyword}`,"i") }
title: { $regex: new RegExp(`${keyword}$`,"i") }

mogoDB에 포함된 필터엔진으로 가능한 일이다.
$regex — MongoDB Manual
Docs Home → MongoDB Manual This page describes regular expression search capabilities for self-managed (non-Atlas) deployments. For data hosted on MongoDB Atlas, MongoDB offers an improved full-text search solution, Atlas Search, which has its own $regex
www.mongodb.com
[new operator]
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new
[RegExp]
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
[RegExp() constructor]
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/RegExp
'백엔드 > MongoDB' 카테고리의 다른 글
| DataBase (9) - Join Check! (중복, 비밀번호 체크 메세지) (0) | 2023.07.16 |
|---|---|
| DataBase (8) - User db, Join 기능 만들기 (hashing) (0) | 2023.07.16 |
| DataBase (6) - Middlewares (0) | 2023.07.11 |
| DataBase (5) - Edit Data (0) | 2023.07.10 |
| DataBase (4) - 정규식표현, 16진수(24byte) 문자열 (0) | 2023.07.05 |