GraphQL Cookbook
객체 업데이트 중
10 분
parse graphql api를 통한 객체 업데이트 문제 parse graphql api를 통해 데이터베이스에 있는 기존 객체를 업데이트하고자 합니다 해결책 parse graphql을 사용하여 데이터베이스에 있는 기존 객체를 업데이트하는 두 가지 방법이 있습니다 일반 변형 사용 https //www back4app com/docs/parse graphql/graphql mutation update object#mutation generic 이는 객체의 클래스에 아직 속하지 않는 필드를 설정하려는 경우 사용해야 하는 변형입니다 클래스 변형 사용 https //www back4app com/docs/parse graphql/graphql mutation update object#mutation class 이는 객체의 클래스에 이미 업데이트하려는 모든 필드가 있는 경우 권장되는 변형입니다 버전 정보 실행할 parse 버전에 따라 graphql 쿼리, 변형 및 결과가 약간 다를 수 있습니다 실행 중인 parse 버전과 함께 올바른 예제를 선택하십시오 일반 변형 사용하기 일반 변형인 update update 를 사용할 때, parse server는 스키마 없는 데이터베이스처럼 동작합니다 즉, 객체의 모든 필드를 미리 정의할 필요가 없다는 의미입니다 업데이트하려는 필드만 전송하면 parse server는 이를 저장할 뿐만 아니라 학습하고, 이 객체의 클래스에 새로운 필드를 자동으로 생성합니다 따라서 객체의 update update 일반 변형은 객체의 클래스에 아직 속하지 않는 필드를 설정하려는 경우 기존 객체를 업데이트하는 데 반드시 사용해야 하는 방법입니다 실제로 이 변형을 사용하여 기존 객체를 업데이트할 수 있지만, 객체의 클래스에 업데이트하려는 모든 필드가 이미 있는 경우 클래스 변형 https //www back4app com/docs/parse graphql/graphql mutation update object#mutation class 을 사용하는 것이 좋습니다 이 예제는 기존 객체의 classname classname 과 objectid objectid 를 사용할 때만 작동합니다 객체 생성 레시피를 사용하여 객체를 생성할 수 있습니다 parse 3 8 0 request 1 mutation updateobject { 2 update(classname "hero", objectid "rr8jmfrnks", fields { height 5 6 }) { 3 updatedat 4 } 5 } response 1 { 2 "data" { 3 "updatehero" { 4 "updatedat" "2019 11 04t13 28 44 150z" 5 } 6 } 7 } 예제 parse 3 9 0 및 이후 버전 parse 3 9 0 및 이후 버전에서는 일반 메서드 update가 없습니다 객체를 업데이트하려면 아래의 특정 메서드를 사용해야 합니다 클래스 변형 사용 응용 프로그램의 스키마에서 객체의 클래스를 이미 생성한 경우(예 객체 생성 https //www back4app com/docs/parse graphql/graphql mutation create object#mutation generic 레시피 사용), parse server는 즉시 graphql api에 이 클래스의 기존 객체를 업데이트하기 위한 새로운 update\<classname> update\<classname> 변형을 추가합니다 따라서 객체의 클래스 변형은 객체의 클래스에 업데이트하려는 모든 필드가 이미 있는 경우 기존 객체를 업데이트하는 데 권장되는 방법입니다 이 변형은 클래스의 데이터를 알고 있으므로 코드 자동 완성 및 유효성 검사와 같은 추가 기능을 자동으로 사용할 수 있습니다 또한 클래스 업데이트 변형을 통해 날짜, 포인터, 관계, 파일, 지리적 포인트, 다각형 또는 바이트를 전송할 때 데이터 유형을 지정할 필요가 없습니다 이 예제는 클래스의 변형을 사용하고 objectid objectid 또는 id id 가 있는 기존 객체를 사용할 때만 작동합니다 객체 생성 레시피를 사용하여 객체를 생성할 수 있습니다 객체의 클래스는 업데이트하려는 모든 필드를 가져야 합니다 일반 변형 을 사용하여 새 필드를 생성할 수 있습니다 parse 3 10 0 및 이후 버전 request 1 mutation updateobject { 2 updatehero(input { 3 id "sgvybzpvrm5tvdm1ynbp" 4 fields { 5 height 5 6 6 } 7 }){ 8 hero{ 9 updatedat 10 } 11 } 12 } response 1 { 2 "data" { 3 "updatehero" { 4 "hero" { 5 "updatedat" "2020 02 06t13 31 49 866z" 6 } 7 } 8 } 9 } 이전 parse 서버 버전 parse 3 9 0 클래스 변형 parse 서버 3 9 0 1 mutation updateobject { 2 updatehero(id "ckhurmmjzw" fields { 3 height 5 6 4 }){ 5 updatedat 6 } 7 } 결과 parse 3 9 0 1 { 2 "data" { 3 "updatehero" { 4 "updatedat" "2019 11 04t13 30 20 457z" 5 } 6 } 7 } 파서 3 8 0 클래스 변형 요청 1 mutation updateobject { 2 updatehero(objectid "rr8jmfrnks" fields { 3 height 5 6 4 }){ 5 updatedat 6 } 7 } 응답 1 { 2 "data" { 3 "updatehero" { 4 "updatedat" "2019 11 04t13 38 46 343z" 5 } 6 } 7 } 파서 3 7 2 일반 변형 파서 서버 3 7 2 1 mutation updateobject { 2 objects { 3 update(classname "hero", objectid "ffyobotk85", fields { height 5 6 }) { 4 updatedat 5 } 6 } 7 } 결과 파서 3 7 2 1 { 2 "data" { 3 "objects" { 4 "update" { 5 "updatedat" "2019 07 15t05 57 14 416z" 6 } 7 } 8 } 9 } 클래스 변형 파서 서버 3 7 2 1 mutation updatehero { 2 objects { 3 updatehero(objectid "jjh0aqqjfs", fields { height 3 6 }) { 4 updatedat 5 } 6 } 7 } 결과 파서 3 7 2 1 { 2 "data" { 3 "objects" { 4 "updatehero" { 5 "updatedat" "2019 07 15t05 51 25 572z" 6 } 7 } 8 } 9 }