• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

find후 업데이트

21.03.10 23:18 작성 조회수 76

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

질문자

2021.03.12

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