해결된 질문
작성
·
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 이렇게 할 수도 있습니다.
실무에서도 저렇게 쓰는군요. find문법이 더 간단해 보이긴하네요. 감사합니다.