web-dev-qa-db-ja.com

graphqlは集計カウントを返すことができますか?

Graphqlは素晴らしく、アプリで使い始めました。概要情報を表示するページがありますが、集計カウントを返すにはgraphqlが必要ですか?これはできますか?

33
orbital

リストと番号を含むオブジェクトである新しいGraphQLタイプを定義します。番号は、リゾルバー関数によって定義されます。

GraphQLサーバーでリゾルバー関数を定義できます。その一部として、集計カウントを取得するために必要な計算とクエリを実行するコードを記述する必要があります。

これは、REST APIまたはカスタムRESTカウント。

GraphQLの強みは、どのデータが具体的に返されるかを決定する際にフロントエンドがより強力になることです。 GraphQLで記述するものの一部は、REST API。

21
Rudolf Olah

GraphQL自体には自動集計関数はありません。

summaryというフィールドを追加し、resolve関数で合計を計算できます。

12
Petr Bela

...集計カウントを返すにはgraphqlが必要ですか?これはできますか?

はい、できます。

GraphQLは自動的にそれを行いますか?いいえ、それはあなたがあなたのデータソースをどこで取得するかを知らない/気にしないからです。

どうやって? GraphQLは、ユーザーが照会したデータを取得/変更する方法を指示しません。要求された集計データを取得するかどうかは、実装次第です。 MongoDBから集計データを直接取得して提供することも、データソースから必要なすべてのデータを取得して集計を自分で行うこともできます。

10
Hafiz Ismail

Graphqlで集約データのTypeと、それを実装する関数を定義する必要があります。たとえば、次のクエリを作成する場合:

SELECT age, sum(score) from student group by age;

返すデータ型を定義する必要があります。

 type StudentScoreByAge{
      age: Int
      sumOfScore: Float
    }

およびGraphql関数:

 getStudentScoreByAge : [StudentScoreByAge]
    async function(){
        const res = await client.query("SELECT age, sum(score) as sumOfScore 
                                        from Student group by age");
        return res.rows;
    }
6
Enayat