Reactを使用した状態で複数のApolloクエリを結合するにはどうすればよいですか?

ペドロ

私はReactとApolloをMongoDBに適用したばかりで、次の問題があります。

(ID-ID_A-ID_B)があるテーブルがあります。これに対してクエリを実行し、配列を返します。その後、別のテーブルで、配列内の各コンポーネントについてID_Aとの一致を確認する必要があります。

だから私は作った:

{this.props.firstGet.map((data, index) => {
const id = data.ID_A;
return (
<Query key={this.props.firstGet.id} query={QUERY} variables={{ id }}>
   {({ loading, error, data }) => {
   if (loading) return 'Loading...';
   if (error) return `Error ${error.message}`;
   this.test = this.test.concat({...data.getStartup, ...this.state.applicants[index]});
   return(this.test.length === this.props.getApplicants.length ? 
   <LastTable startups={this.test}></LastTable>
   : '')
   }
   }
</Query>
);

私の問題のベストプラクティスはどれですか?2番目のテーブルの答えを持つ各オブジェクトのコンポジットを含む最初の配列が必要です。たとえば、LastTableを使用せずに、メイン状態に直接移行する方法はありますか?


解決方法:1)MainTable MongoDBスキーマの追加:

ID_A: {
    type: mongoose.Schema.ObjectId,
    ref: 'Table1'
}

2)graphQlでshcema:ID_A:Table1Object

3)リゾルバーに.populate( 'ID_A')を追加する

新しいものを挿入してみます。問題があるかもしれませんが、そのMainTable ID_AフィールドにIDがある場合、接続は正常に機能します。

WitVault

これはgraphqlサーバー側で処理できます。これらの依存フィールドを解決してサーバー側から返すように要求する必要があります。

たとえば-

フィールドとサブフィールドを持つ1.Createスキーマなど

 type Person {
 id: ID!
 cars: [Car]
}

type Car {
  id:ID!
  ownerId: Int!
  model: String
}

2.サーバー側でネストされたリゾルバーを作成する必要があります

パーソンリゾルバ:

import Query from './query';
import Mutation from './mutation';

export default {
  Query,       //<----- person query resolver 
  Mutation,    //<----- person mutation resolver if any
  Person: { .  //<----- Nested fields resolver on Person
   cars: (parent, args, { dataSources }) => {
      const { id: ownerId } = parent;
      // return from db cars owned by person
      return dataSources.carAPI.getCarsByOwnerId(ownerId);
    },
  },
};

ここでdataSourceを使用していますが、データベースから直接解決を使用できます。

3.クライアント側でのクエリ

 export const GET_PERSON_WITH_CARS = gql`
  query getPersonWithCars($id: ID!) {
   person(id: $id) {
      id
      cars {
        id,
        ownerId,
        model,
     }
  }
`

お役に立てば幸いです

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

SQLを使用した内部結合クエリから複数の値を選択するにはどうすればよいですか?

分類Dev

React Context APIを使用して、複数のルートにまたがる状態を設定するにはどうすればよいですか?

分類Dev

ウィンドウ関数を介したSQLServer状態変更クエリ:状態* WITHIN *状態ブロックで実行中の合計時間を取得するにはどうすればよいですか?

分類Dev

mySQLクエリを使用して複数のフィールドを順番に結合するにはどうすればよいですか?

分類Dev

外部結合と複数のOR基準を使用してクエリを作成するにはどうすればよいですか?

分類Dev

SQLクエリでテーブルを結合し、結合された列の数を取得するにはどうすればよいですか?

分類Dev

searchkitのSearchBoxを使用して複合クエリを作成するにはどうすればよいですか?

分類Dev

React Apolloのグラフオブジェクトに計算された状態を追加するにはどうすればよいですか?

分類Dev

Reactで、複数の状態プロパティを使用してimg srcを設定するにはどうすればよいですか?

分類Dev

複数のリクエストを送信するときに結果をリクエストと照合するにはどうすればよいですか?

分類Dev

sqlalchemyコアを使用してUPDATE左結合複数テーブルクエリ(MySQL)を作成するにはどうすればよいですか?

分類Dev

componentWillMountの状態を更新し、React Nativeのレンダリング関数でその値を使用するにはどうすればよいですか?

分類Dev

MySQLで複数の列の値を1つの列に結合するSQLクエリを作成するにはどうすればよいですか?

分類Dev

useStateフックを使用して複数の状態を同時に設定するにはどうすればよいですか?

分類Dev

useStateフックを使用して一度に複数の状態を更新するにはどうすればよいですか?

分類Dev

ReactHooksとContextAPIを使用して、useEffect内で呼び出された複数のエンドポイントからのデータを状態オブジェクトに正しく追加するにはどうすればよいですか?

分類Dev

Reactフック:useState()を使用してネストされたオブジェクトの状態を更新するにはどうすればよいですか?

分類Dev

左結合を使用してクエリを高速化するにはどうすればよいですか?

分類Dev

React.jsの配列でfilter()を使用した後に初期状態にリセットするにはどうすればよいですか?

分類Dev

複数のテーブルを結合するクエリでMySQLの「OrderByLimit1」を最適化するにはどうすればよいですか?

分類Dev

pg-promiseを使用して一度に複数のクエリから結果を取得するにはどうすればよいですか?

分類Dev

クエリ結果からメールを取得した後、複数のメールに送信するにはどうすればよいですか?

分類Dev

useMutationが完了したらReactの状態を更新するにはどうすればよいですか?

分類Dev

クエリで「GROUP_CONCAT」と「HAVING」を使用した場合、MySQLの結果をカウントするにはどうすればよいですか?

分類Dev

挿入して選択した場合のクエリ結果の数を取得するにはどうすればよいですか?

分類Dev

複数の呼び出しが成功した場合にのみ状態が設定されるトランザクションRXJSストリームを生成するにはどうすればよいですか?

分類Dev

複数の入力の状態を処理し、それらの状態を親から変更するにはどうすればよいですか?

分類Dev

複数のApolloクエリとミューテーションの実行後にローカル状態を更新するにはどうすればよいですか?

分類Dev

重複する結果を排除するために、このクエリでDISTINCT句を使用するにはどうすればよいですか?

Related 関連記事

  1. 1

    SQLを使用した内部結合クエリから複数の値を選択するにはどうすればよいですか?

  2. 2

    React Context APIを使用して、複数のルートにまたがる状態を設定するにはどうすればよいですか?

  3. 3

    ウィンドウ関数を介したSQLServer状態変更クエリ:状態* WITHIN *状態ブロックで実行中の合計時間を取得するにはどうすればよいですか?

  4. 4

    mySQLクエリを使用して複数のフィールドを順番に結合するにはどうすればよいですか?

  5. 5

    外部結合と複数のOR基準を使用してクエリを作成するにはどうすればよいですか?

  6. 6

    SQLクエリでテーブルを結合し、結合された列の数を取得するにはどうすればよいですか?

  7. 7

    searchkitのSearchBoxを使用して複合クエリを作成するにはどうすればよいですか?

  8. 8

    React Apolloのグラフオブジェクトに計算された状態を追加するにはどうすればよいですか?

  9. 9

    Reactで、複数の状態プロパティを使用してimg srcを設定するにはどうすればよいですか?

  10. 10

    複数のリクエストを送信するときに結果をリクエストと照合するにはどうすればよいですか?

  11. 11

    sqlalchemyコアを使用してUPDATE左結合複数テーブルクエリ(MySQL)を作成するにはどうすればよいですか?

  12. 12

    componentWillMountの状態を更新し、React Nativeのレンダリング関数でその値を使用するにはどうすればよいですか?

  13. 13

    MySQLで複数の列の値を1つの列に結合するSQLクエリを作成するにはどうすればよいですか?

  14. 14

    useStateフックを使用して複数の状態を同時に設定するにはどうすればよいですか?

  15. 15

    useStateフックを使用して一度に複数の状態を更新するにはどうすればよいですか?

  16. 16

    ReactHooksとContextAPIを使用して、useEffect内で呼び出された複数のエンドポイントからのデータを状態オブジェクトに正しく追加するにはどうすればよいですか?

  17. 17

    Reactフック:useState()を使用してネストされたオブジェクトの状態を更新するにはどうすればよいですか?

  18. 18

    左結合を使用してクエリを高速化するにはどうすればよいですか?

  19. 19

    React.jsの配列でfilter()を使用した後に初期状態にリセットするにはどうすればよいですか?

  20. 20

    複数のテーブルを結合するクエリでMySQLの「OrderByLimit1」を最適化するにはどうすればよいですか?

  21. 21

    pg-promiseを使用して一度に複数のクエリから結果を取得するにはどうすればよいですか?

  22. 22

    クエリ結果からメールを取得した後、複数のメールに送信するにはどうすればよいですか?

  23. 23

    useMutationが完了したらReactの状態を更新するにはどうすればよいですか?

  24. 24

    クエリで「GROUP_CONCAT」と「HAVING」を使用した場合、MySQLの結果をカウントするにはどうすればよいですか?

  25. 25

    挿入して選択した場合のクエリ結果の数を取得するにはどうすればよいですか?

  26. 26

    複数の呼び出しが成功した場合にのみ状態が設定されるトランザクションRXJSストリームを生成するにはどうすればよいですか?

  27. 27

    複数の入力の状態を処理し、それらの状態を親から変更するにはどうすればよいですか?

  28. 28

    複数のApolloクエリとミューテーションの実行後にローカル状態を更新するにはどうすればよいですか?

  29. 29

    重複する結果を排除するために、このクエリでDISTINCT句を使用するにはどうすればよいですか?

ホットタグ

アーカイブ