• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

arrayFilters 질문

21.04.28 17:55 작성 조회수 113

1

안녕하세요!

항상 강의 잘듣고 있습니다.

감사합니다.

  Blog.updateMany(

          {},

          { 'comments.$[element].user.name': name },

          { arrayFilters: [{ 'element.user._id': userId }] },

   )

위 코드에서는 모든 blog를 대상으로 arrayFilters를 수행한다고 이해했는데요, 제가 이해가 가지 않는 부분은 왜  조건을 {} (빈 객체)로 설정했는지 입니다.

{"comments.user._id" : userId}로 조건을 건다면 모든 blog 중에서 comments의 해당 userId가 존재하는 blog만을 대상으로 arrayFilters를 수행해서 좀 더 효율적이라고 생각하는데 이 부분에 대해서 설명 부탁드립니다.

감사합니다 :)

답변 1

답변을 작성해보세요.

1

Dev님 안녕하세요 :)

좋은 지적입니다. 만약 comments.user._id가 인덱스 처리가 되어 있지 않다면 크게 차이가 안날 수도 있는데요. 인덱스 처리가 되어 있기 때문에 이 경우 말씀하신대로 탐색 조건을 추가해주시는게 효율에 더 좋습니다. 해당 강의에 안내 추가해두도록 할게요!

Dev님의 프로필

Dev

질문자

2021.04.28

감사합니다 :)