해결된 질문
작성
·
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가 인덱스 처리가 되어 있지 않다면 크게 차이가 안날 수도 있는데요. 인덱스 처리가 되어 있기 때문에 이 경우 말씀하신대로 탐색 조건을 추가해주시는게 효율에 더 좋습니다. 해당 강의에 안내 추가해두도록 할게요!
감사합니다 :)