Indexing List Type field in a GraphQL type from within a Query









up vote
0
down vote

favorite












Say I have the following GraphQL Schema



query 
allAuthors: [Author]


type Author
id: ID!
name: String!
books: [Book]


type Book
id: ID!
name: String!
author: Author!



Now I can successfully run the following query to get all the authors and their associated books



query 
allAuthors
name,
books
name





However, if I only want to get the first three books for all authors, how would I go about doing something like that? Can we index the books field in the Author type from within a query? If so, how?



I tried something like this and it doesn't work



query 
allAuthors
name,
books[3]
name












share|improve this question

























    up vote
    0
    down vote

    favorite












    Say I have the following GraphQL Schema



    query 
    allAuthors: [Author]


    type Author
    id: ID!
    name: String!
    books: [Book]


    type Book
    id: ID!
    name: String!
    author: Author!



    Now I can successfully run the following query to get all the authors and their associated books



    query 
    allAuthors
    name,
    books
    name





    However, if I only want to get the first three books for all authors, how would I go about doing something like that? Can we index the books field in the Author type from within a query? If so, how?



    I tried something like this and it doesn't work



    query 
    allAuthors
    name,
    books[3]
    name












    share|improve this question























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      Say I have the following GraphQL Schema



      query 
      allAuthors: [Author]


      type Author
      id: ID!
      name: String!
      books: [Book]


      type Book
      id: ID!
      name: String!
      author: Author!



      Now I can successfully run the following query to get all the authors and their associated books



      query 
      allAuthors
      name,
      books
      name





      However, if I only want to get the first three books for all authors, how would I go about doing something like that? Can we index the books field in the Author type from within a query? If so, how?



      I tried something like this and it doesn't work



      query 
      allAuthors
      name,
      books[3]
      name












      share|improve this question













      Say I have the following GraphQL Schema



      query 
      allAuthors: [Author]


      type Author
      id: ID!
      name: String!
      books: [Book]


      type Book
      id: ID!
      name: String!
      author: Author!



      Now I can successfully run the following query to get all the authors and their associated books



      query 
      allAuthors
      name,
      books
      name





      However, if I only want to get the first three books for all authors, how would I go about doing something like that? Can we index the books field in the Author type from within a query? If so, how?



      I tried something like this and it doesn't work



      query 
      allAuthors
      name,
      books[3]
      name









      graphql






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 10 at 22:12









      Siddharth Sharma

      187




      187






















          1 Answer
          1






          active

          oldest

          votes

















          up vote
          2
          down vote



          accepted










          GraphQL doesn't have syntax for this.



          You can add a "limit" parameter to a field, and this is common enough:



          type Query 
          allAuthors(limit: Int, offset: Int): [Author!]!

          type Author
          id: ID!
          name: String!
          books(limit: Int, offset: Int): [Book!]!



          If you add parameters like this to the schema, then the query you want (for all authors, get the first three books) could look like




          allAuthors
          name
          books(limit: 3)
          name








          share|improve this answer




















            Your Answer






            StackExchange.ifUsing("editor", function ()
            StackExchange.using("externalEditor", function ()
            StackExchange.using("snippets", function ()
            StackExchange.snippets.init();
            );
            );
            , "code-snippets");

            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "1"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













             

            draft saved


            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53243941%2findexing-list-type-field-in-a-graphql-type-from-within-a-query%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            2
            down vote



            accepted










            GraphQL doesn't have syntax for this.



            You can add a "limit" parameter to a field, and this is common enough:



            type Query 
            allAuthors(limit: Int, offset: Int): [Author!]!

            type Author
            id: ID!
            name: String!
            books(limit: Int, offset: Int): [Book!]!



            If you add parameters like this to the schema, then the query you want (for all authors, get the first three books) could look like




            allAuthors
            name
            books(limit: 3)
            name








            share|improve this answer
























              up vote
              2
              down vote



              accepted










              GraphQL doesn't have syntax for this.



              You can add a "limit" parameter to a field, and this is common enough:



              type Query 
              allAuthors(limit: Int, offset: Int): [Author!]!

              type Author
              id: ID!
              name: String!
              books(limit: Int, offset: Int): [Book!]!



              If you add parameters like this to the schema, then the query you want (for all authors, get the first three books) could look like




              allAuthors
              name
              books(limit: 3)
              name








              share|improve this answer






















                up vote
                2
                down vote



                accepted







                up vote
                2
                down vote



                accepted






                GraphQL doesn't have syntax for this.



                You can add a "limit" parameter to a field, and this is common enough:



                type Query 
                allAuthors(limit: Int, offset: Int): [Author!]!

                type Author
                id: ID!
                name: String!
                books(limit: Int, offset: Int): [Book!]!



                If you add parameters like this to the schema, then the query you want (for all authors, get the first three books) could look like




                allAuthors
                name
                books(limit: 3)
                name








                share|improve this answer












                GraphQL doesn't have syntax for this.



                You can add a "limit" parameter to a field, and this is common enough:



                type Query 
                allAuthors(limit: Int, offset: Int): [Author!]!

                type Author
                id: ID!
                name: String!
                books(limit: Int, offset: Int): [Book!]!



                If you add parameters like this to the schema, then the query you want (for all authors, get the first three books) could look like




                allAuthors
                name
                books(limit: 3)
                name









                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 10 at 23:05









                David Maze

                7,9232821




                7,9232821



























                     

                    draft saved


                    draft discarded















































                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53243941%2findexing-list-type-field-in-a-graphql-type-from-within-a-query%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    這個網誌中的熱門文章

                    How to read a connectionString WITH PROVIDER in .NET Core?

                    Node.js Script on GitHub Pages or Amazon S3

                    Museum of Modern and Contemporary Art of Trento and Rovereto