-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
DB에서 불필요한 데이터 제거하고 전송하기
22.07.03 22:44 작성 조회수 169
0
답변을 작성해보세요.
1
김시훈
지식공유자2022.07.04
안녕하세요~
User.findOne({..}).select({_id: 1, createdAt: 1 }) 이런식으로 select를 하시면 됩니다.
저는 select를 자주 사용하지는 않아요. 관계형에서는 SELECT로 특정 컬럼만 선택을 하면 해당 컬럼만 하드디스크에서 디비 메모리로 불러와줘서 해주는게 좋은데요. 몽고는 문서 전체가 디비 서버 메모리로 불러와지고 나서 거기서 선택하지 않은 필드들을 제외해주는 작업을 해요. 그래서 저는 필요하다면 그냥 백엔드 서버에서 분리하는편이에요.
그리고 말씀하신 비밀번호에 대해서는 가져와도 보안상 문제는 특별히 없어요. 애초에 디비에 비밀번호를 그대로 저장 그대로 저장하는게 아니라 비밀번호의 해시값을 저장하기 때문이죠. 해시 값에서 비밀번호 복호화는 불가능해요
무자본
질문자2022.07.04
엇 select 기능 알려주신것도 감사한데, 제 질문은 백엔드에서 DB 문서를 가져와서 불필요한 정보를 제거하는걸 묻는거였거든요.
한 문서 내에 많은 항목이 있는데, 한두개의 필드만 제거하고 전부 프론트쪽으로 보내고 싶은데, 이런 경우 어떤 방식으로 하는지 궁금해요
const document = await Model.find({...})
delete document.field 이런식으로 가능한건지. 아니면 그외 더 나은 방식이 있는건지...
답변 1