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

GODOT님의 프로필 이미지
GODOT

작성한 질문수

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

find후 업데이트

해결된 질문

작성

·

111

1

강의에도 나와있긴한데요. 실무에서는 어떤식으로 하는지 궁금해서요.

보통 find 후 update할때 

예를 들자면 character 스키마가 있고 character에 무기라는 것을 업데이트 한다고 할 때,

무기는 array되어있고 (여러개일수있으니)

보통 어떤식으로 캐릭터를 찾고 무기를 업데이트 하나요. update할 무기가 3~4개라 할때,

검, 방패, 신발 이렇게 있을때, 실무에서 한다면 어떤식으로 하는지 궁금합니다.

답변 1

1

김시훈님의 프로필 이미지
김시훈
지식공유자

DEV JUNGLE님 안녕하세요 :)

find후 update이면 .save()로 업데이트하는 방법을 말씀하시는거죠? Javascript 문법 가능한선에서 원하시는대로 수정하시면 되요. 

newWeapons = [{id:1, name: weapon1}, { id:2, name: weapon2}]
let character = await Character.findById(id)

newWeapons.forEach(newWeapon => {
  character.weapons.forEach(weapon => {
    if(weapon.id === newWeapon.id) weapon.name = newWeapon.name
  }
}}

await character.save()

위와 같이 forEach를 사용하는 방법도 있고. character.weapons.forEach 대신에 let weapon = character.weapons.find(weapon => weapon.id === newWeapon.id);

weapon.name = newWeapon.name 이렇게 할 수도 있습니다.

GODOT님의 프로필 이미지
GODOT
질문자

실무에서도 저렇게 쓰는군요.  find문법이 더 간단해 보이긴하네요. 감사합니다.

GODOT님의 프로필 이미지
GODOT

작성한 질문수

질문하기