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, которую вы используете использование общей мутации когда вы используете обновление обновление общей мутации, parse server ведет себя как база данных без схемы это означает, что вам не нужно заранее определять все поля вашего объекта вам просто нужно отправить поля, которые вы хотите обновить, и parse server не только сохранит их, но и научится на их основе, автоматически создавая любое новое поле в классе этого объекта следовательно, обновление обновление объектов с помощью общей мутации — это метод, который вы должны использовать для обновления существующего объекта, если хотите установить поля, которые еще не принадлежат классу вашего объекта вы можете на самом деле использовать эту мутацию для обновления любого существующего объекта, но мы рекомендуем использовать мутацию класса https //www back4app com/docs/parse graphql/graphql mutation update object#mutation class если класс вашего объекта уже имеет все поля, которые вы хотите обновить этот пример будет работать только в том случае, если вы используете имя класса имя класса и 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 server parse 3 9 0 мутация класса parse server 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 общая мутация parse server 3 7 2 1 mutation updateobject { 2 objects { 3 update(classname "hero", objectid "ffyobotk85", fields { height 5 6 }) { 4 updatedat 5 } 6 } 7 } результат parse 3 7 2 1 { 2 "data" { 3 "objects" { 4 "update" { 5 "updatedat" "2019 07 15t05 57 14 416z" 6 } 7 } 8 } 9 } мутация класса parse server 3 7 2 1 mutation updatehero { 2 objects { 3 updatehero(objectid "jjh0aqqjfs", fields { height 3 6 }) { 4 updatedat 5 } 6 } 7 } результат parse 3 7 2 1 { 2 "data" { 3 "objects" { 4 "updatehero" { 5 "updatedat" "2019 07 15t05 51 25 572z" 6 } 7 } 8 } 9 }