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

송지훈님의 프로필 이미지
송지훈

작성한 질문수

리액트로 나만의 블로그 만들기(MERN Stack)

오타인가요?

작성

·

151

0

if (isNullOrUndefined(findResult)) {
      const newCategory = await Category.create({
        categoryName: category,
      });
      await Post.findByIdAndUpdate(newPost._id, {
        $push: { category: newCategory._id },
      });
Post는 하나의 category만 갖는데 push가 맞나요? 이게 맞는건가요??
      await Category.findByIdAndUpdate(newCategory._id, {
        $push: { posts: newPost._id },
      });
      await User.findByIdAndUpdate(req.user.id, {
        $push: { posts: newPost._id },
      });
    } else {
      await Category.findByIdAndUpdate(findResult._id, {
        $push: { posts: newPost._id },
      });
      await Post.findByIdAndUpdate(newPost._id, {
        category: findResult._id,
      });
이게 맞는건가요?? 둘이 달라서 둘중하나는 틀린거 같아서 질문드립니당
      await User.findByIdAndUpdate(req.user.id, {
        $push: { posts: newPost._id },
      });
   }

답변 2

0

송지훈님의 프로필 이미지
송지훈
질문자

앜.. 이해했습니다.

감사합니다.

findByIdAndUpdateㅎㅎ..

정성스러운답변 감사합니다.

제가 무작정 질문했네요 죄송해요 화이팅!!

0

싸플님의 프로필 이미지
싸플
지식공유자

findByIdAndUpdate 라는 의미를 파악해주시기를 바랍니다. 직역하자면 id로 찾고 업데이트를 해달라는 명령어 입니다. 명령어를 직역하면 어떤 의미가 떠오르시나요? 코드대로 해석하자면 findresult가 없다면(isNullorUndefined)새 카테고리를 만들어주고 일단 포스트 모델중 카테고리에 새로운 카테코리 아이디를 넣어주고 그 카테고리에 포스트 아이디를 넣어달라는 의미입니다. 

왜냐하면.... 카테고리로 찾는결과가 없으면... 그것은 분명 새로운 카데고리 일 것입니다. 만약 기존의 카테고리에 있으면 결과값이 나올 것이기 때문입니다. 

카테고리가 찾는 결과값이 없다면 그것과 연결을 안시켜주실건가요? 아래코드는 카테고리에 찾는 결과가 없을 경우 일단 카테고리를 생성해주고 그 카테고리와 포스트와 연결해준다는 의미입니다. 

if (isNullOrUndefined(findResult)) {
const newCategory = await Category.create({
categoryName: category,
});
await Post.findByIdAndUpdate(newPost._id, {
$push: { category: newCategory._id },
});
await Category.findByIdAndUpdate(newCategory._id, {
$push: { posts: newPost._id },
});
await User.findByIdAndUpdate(req.user.id, {
$push: {
posts: newPost._id,
},
});

즉, 찾는 결과가 없다면 일단 카테고리를 생성해주고, 생성된 카테고리를 생성된 포스트와 연결해준다는 의미입니다. 

만약 이 코드가 해석이 안된다고 하시면 하나씩 지우시고 작성해보시면 어떤 의미인지 아실 것입니다.

송지훈님의 프로필 이미지
송지훈

작성한 질문수

질문하기