• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

모델 설정 질문입니다

22.02.18 16:57 작성 조회수 83

0

안녕하세요 

수업 잘 보고 있습니다

 

질문1)

자꾸 아이디 중복된다고 떠서 한참을 헤매다가 왜 그런지 찾았는데 ...

제가 모델 설정할때 requied: true 주고 첫 게시물을 만들면 소스상에서 삭제하고 데이터를 다시 보내도 디비서버엔 바뀌지 않더라구요 ..게시물을 삭제해도 ... 결국엔 comments 자체를 날려버리니 잘 되는데 

모델 설정을 다 하고 디비서버에 저장된 것들은 소스상에서 수정하고 디비서버에 적용이 불가능할까요 ? 

-----

질문2)

코멘트같은 하위 모델은 어떻게 하는게 더 빠르게 조회할까요 ? 

1. 모든 코멘트에서 조회해서 가져오기 

const findOneComment = await Comment.findOne({_id: commentId})

2. 조건을 두개로 나눠서 조회해서 가져오기  

const findOneComment = await Comment.findOne({ $and: [ {blog: blogId}, {_id: commentId}] })

답변 1

답변을 작성해보세요.

1

1) 음 혹시 unique: true로 적용했던 필드가 있지 않았나요? unique index를 생성하거든요. 그러면 중복된 필드가 있을 때 저런 오류 처리가 나옵니다. 한번 생성된 인덱스를 삭제하고 싶으시면 MongoDB Compass에 들어가서 하시면 되요. 들어가서 해당 Collection -> Indexes -> 잘못된 인덱스 삭제

2) 사실상 차이 없습니다. index가 걸려 있는 필드로 탐색하느냐 안하느냐가 중요한데 _id는 기본설정으로 인덱스가 걸려 있고 보여주신 두 쿼리 모두 _id 탐색이 포함되어 있어서 둘 다 빠릅니다.

jjongrrr님의 프로필

jjongrrr

질문자

2022.02.21

넵 답변 감사합니다 ~

unique가 걸려있었네요 ㅎㅎ