• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

질문있습니다!

21.09.13 03:06 작성 조회수 97

1

우선 마른 사막에 단비같은 강의 정말 잘보고있습니다. 강의 듣기전에는 혼자서 하느라 얼마나 고생했는지 몰라요ㅠㅠㅠ

각설하고 제가 스타트업으로 개발을 하고있는데 막히는 부분이 있습니다.

예를들어 users라는 스키마에 { id: 12, name: '형돈', freind: [{ id:81, name:'홍철' }, { id:66, name:'재석 }] }

이라는 Document가 존재합니다.

제가 하고싶은건 id가 12인 document를 찾고서, document 내부 freind 배열에서 id가 66인곳에 {name: '명수'} 로 수정하고싶은데 어떻게 해야할지 잘 모르겠습니다.

제가 막히는 부분 =>> user.findOneAndUpdate({ id:12, "freind.id": 66 }, { $set: { "freind.name": "명수" } })

이렇게 해봤는데 값이 수정되지 않습니다.ㅠㅠ 답변 기다리겠습니다.

답변 1

답변을 작성해보세요.

1

유성현님 안녕하세요 :)

 

와우 스타트업이라니 멋지십니다! ㅎㅎ 

아래와 같이 friend.$.name 이렇게 해주시면 됩니다!

user.findOneAndUpdate({ id:12, "freind.id": 66 }, { $set: { "freind.$.name": "명수" } })

 

그리고 만약 결과값으로 업데이트 이후의 데이터를 받고 싶응시면 옵션으로 {new: true}를 해주시면 되고요!

user.findOneAndUpdate({ id:12, "freind.id": 66 }, { $set: { "freind.$.name": "명수" } }, {new: true })