인프런 커뮤니티 질문&답변
자식의 요소까지 populate를 사용하려면 어떻게 해야할까요?
작성
·
217
0
안녕하세요! 강사님 강의를 보고 여러가지 응용해보고 싶어서 중고장터를 클론코딩 하고 있습니다.
그러던 와중 특정 상품에 들어가면 상품에 달린 문의 글을 불러오는 로직을 작성했습니다.
하지만 문의글을 작성한 유저의 아이디만 불러올 뿐 populate를 할 수 있는 방법이 떠오르지 않아 도움 요청합니다..
DB의 구조는
상품 모델, 유저 모델, 상품문의 모델이 있다고 할 때
상품문의 모델은
문의가 작성된 상품 아이디: ObjectId(62149490b348c807b4337881)
문의를 작성한 유저 아이디:
ObjectId(6224a99d95dcdc366868efe8)
문의 내용: "언제 구매한 물품인가요?"
이런식으로 설계되어 있고 특정 상품을 클릭하면
상품에 입력된 여러 정보와 상품 고유 아이디를 통해
상품문의 내용들을 populate 하여 모두 불러왔습니다.
그렇게 되니 최종적으로
{
상품아이디: ObjectId(62149490b348c807b4337881)
상품명: "사과",
설명: "택배 불가능"
문의: [
{
문의가 작성된 상품 아이디: ObjectId(62149490b348c807b4337881)
문의를 작성한 유저 아이디:
ObjectId(6224a99d95dcdc366868efe8)
문의 내용: "언제 구매한 물품인가요?"
},
{
문의가 작성된 상품 아이디: ObjectId(62149490b348c807b4337881)
문의를 작성한 유저 아이디:
ObjectId(498dmek21v2hu3166868efe8)
문의 내용: "2차 구매자 입니까?"
}
]
이런식으로 결과가 문의내용은 잘 불러옵니다.
하지만 배열에 담긴 유저 정보도 불러오기 위해 populate를 사용하러면 어떤식으로 사용을 해야할지 모르겠습니다.
모든 배열을 돌면서 해당하는 유저아이디만 찾아서 조합하는 방법을 떠올렸지만 너무 비효율적인것 같아 강사님의 솔루션을 듣고 싶습니다.
깃허브 주소 첨부합니다.
https://github.com/nogoduck/Lightning-marketplace-Clone
답변





.png?w=112)