2017-02-09 12 views

答えて

7

GraphQLサーバに対して同じリクエストで複数の変異を一括して、GraphQLエイリアスを使用してバッチすることができます。そして、これはあなたが一つのリクエストで複数の項目を削除することができる方法です

mutation deleteOne { 
    deleteItem(id: "id1") { 
    id 
    } 
} 

のは、これはあなたが一つの項目を削除する方法であるとしましょう

mutation deleteMultiple { 
    id1: deleteItem(id: "id1") { 
    id 
    } 
    id2: deleteItem(id: "id2") { 
    id 
    } 
    # ... and so on 
    id100: deleteItem(id: "id100") { 
    id 
    } 
} 

それでその複数の変異を知っていると便利です1つの要求は、順番に(上から順に)順番に実行されます()。 1つのリクエストで複数のクエリを同じ方法で実行し、複数のクエリを1つのリクエストで実行すると、parellelで実行されます。

あなたは1000個の突然変異が言う実行したい場合、それはより多くの情報と別の例は、このFAQ articleならびに公式GraphQL docs見つけることができる100

の10グループに一括彼らに良いかもしれません。

0

私は、良い解決策は、例えば配列を受け入れるメソッド(突然変異)を作成することだと思います。複数のレコードをデータベースから一括削除するためにさらに使用されるID。

mutation deleteUsers($userIds: [Int!]!) { 
    deleteUsers(userIds: $userIds) { 
    ... 
    } 
} 

はその後、リゾルバにあなたがデータベースと対話する方法に応じて、(エスケープ)当然の userIdsを正しく交換する必要があります DELETE FROM users WHERE id IN userIds、のようなSQLクエリを実行するために userIdsパラメータを使用することができます。

関連する問題