인프런 커뮤니티 질문&답변

Dev님의 프로필 이미지
Dev

작성한 질문수

mongoDB 기초부터 실무까지(feat. Node.js)

arrayFilter

arrayFilters 질문

해결된 질문

작성

·

162

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
질문자

감사합니다 :)

Dev님의 프로필 이미지
Dev

작성한 질문수

질문하기