Bird
Raised Fist0
GraphQLquery~20 mins

Field selection in GraphQL - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Field Selection Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ query_result
intermediate
2:00remaining
What is the output of this GraphQL query?

Given the following GraphQL schema snippet:

type Book {
  title: String
  author: Author
}

type Author {
  name: String
  age: Int
}

And the query:

{
  book {
    title
    author {
      name
    }
  }
}

What fields will be included in the response?

A{"data": {"book": {"title": "1984", "author": {"name": "George Orwell"}}}}
B{"data": {"book": {"title": "1984", "author": {"name": "George Orwell", "age": 46}}}}
C{"data": {"book": {"title": "1984"}}}
D{"data": {"book": {"author": {"name": "George Orwell"}}}}
Attempts:
2 left
💡 Hint

Look carefully at which fields are requested inside author.

📝 Syntax
intermediate
2:00remaining
Which GraphQL query has a syntax error?

Identify the query that will cause a syntax error when executed.

A{ book { title author name } }
B{ book { title author { name age } } }
C} } } eman { rohtua eltit { koob {
D{ book { title author { name } } }
Attempts:
2 left
💡 Hint

Remember that nested fields must be enclosed in braces.

❓ optimization
advanced
2:00remaining
Which query is the most efficient to fetch only book titles?

You want to fetch only the titles of all books. Which query is best to minimize data transfer?

A{ books { title author { name } } }
B{ books { title author { name age } } }
C{ books { title author } }
D{ books { title } }
Attempts:
2 left
💡 Hint

Request only the fields you need.

🧠 Conceptual
advanced
2:00remaining
What happens if you omit a field in a GraphQL query?

Consider a GraphQL type User with fields id, name, and email. If you query only id and name, what will the server return for email?

AThe server returns the email field with its value.
BThe server returns null for the email field.
CThe server omits the email field entirely from the response.
DThe server returns an error because email was not requested.
Attempts:
2 left
💡 Hint

GraphQL only returns fields explicitly requested.

🔧 Debug
expert
3:00remaining
Why does this GraphQL query return an error?

Given the schema:

type Query {
  user(id: ID!): User
}

type User {
  id: ID
  name: String
  friends: [User]
}

And the query:

{
  user(id: "1") {
    id
    name
    friends {
      id
      name
      friends {
        id
      }
    }
  }
}

The server returns an error about exceeding query depth. Why?

AThe query is missing required arguments for friends field.
BThe query requests nested friends fields recursively, causing too deep nesting.
CThe query uses invalid field names for User type.
DThe query syntax is incorrect due to missing braces.
Attempts:
2 left
💡 Hint

Think about how deep the query goes into nested fields.

Practice

(1/5)
1. What does field selection in GraphQL allow you to do?
easy
A. Encrypt data before sending it
B. Automatically update the database schema
C. Choose only the data fields you want to receive
D. Create new database tables

Solution

  1. Step 1: Understand the purpose of field selection

    Field selection lets you specify exactly which fields you want in your query response.
  2. Step 2: Compare options with the concept

    Only Choose only the data fields you want to receive describes choosing specific data fields, which matches field selection.
  3. Final Answer:

    Choose only the data fields you want to receive -> Option C
  4. Quick Check:

    Field selection = Choose specific fields [OK]
Hint: Field selection means picking only needed data fields [OK]
Common Mistakes:
  • Confusing field selection with schema changes
  • Thinking it encrypts data
  • Assuming it creates database tables
2. Which of the following is the correct GraphQL syntax to select the fields id and name from a user?
easy
A. { user: id, name }
B. { user(id, name) }
C. query user { id, name }
D. { user { id, name } }

Solution

  1. Step 1: Recall GraphQL field selection syntax

    Fields are selected inside curly braces after the type name, separated by commas or spaces.
  2. Step 2: Check each option's syntax

    { user { id, name } } correctly uses braces and field names inside user. Others have syntax errors or wrong structure.
  3. Final Answer:

    { user { id, name } } -> Option D
  4. Quick Check:

    Correct field selection syntax = { user { id, name } } [OK]
Hint: Use braces to nest fields inside the type name [OK]
Common Mistakes:
  • Using colon instead of braces for fields
  • Omitting braces around fields
  • Trying to pass fields as function arguments
3. Given this GraphQL query:
{ book { title author { name } } }

What fields will be returned in the response?
medium
A. { "book": { "title": "...", "author": { "name": "..." } } }
B. { "book": { "title": "...", "author": "..." } }
C. { "book": { "author": { "name": "..." } } }
D. { "book": { "title": "..." } }

Solution

  1. Step 1: Analyze the query structure

    The query requests title and nested author with its name field.
  2. Step 2: Determine the response shape

    The response will include title and an author object containing name.
  3. Final Answer:

    { "book": { "title": "...", "author": { "name": "..." } } } -> Option A
  4. Quick Check:

    Nested fields return nested objects [OK]
Hint: Nested fields return nested objects in response [OK]
Common Mistakes:
  • Expecting author as a string instead of object
  • Missing requested fields in response
  • Ignoring nested field structure
4. Identify the error in this GraphQL query:
{ user { id name, } }
medium
A. Trailing comma after last field causes syntax error
B. Missing parentheses after user
C. Fields must be quoted strings
D. Curly braces are not allowed inside queries

Solution

  1. Step 1: Check field list syntax

    GraphQL does not allow a comma after the last field in a selection set.
  2. Step 2: Verify other syntax rules

    No parentheses needed after user, fields are unquoted, and braces are required.
  3. Final Answer:

    Trailing comma after last field causes syntax error -> Option A
  4. Quick Check:

    No trailing commas in field lists [OK]
Hint: No trailing commas after last field in selection [OK]
Common Mistakes:
  • Adding commas after last field
  • Adding unnecessary parentheses
  • Quoting field names
5. You want to fetch a list of products with only their id and price, but each product also has a nested manufacturer with name and location. How do you write a GraphQL query to select only id, price, and the manufacturer's name (not location)?
hard
A. { products { id price manufacturer { name location } } }
B. { products { id price manufacturer { name } } }
C. { products { id price manufacturer name } }
D. { products { id price, manufacturer: { name } } }

Solution

  1. Step 1: Identify required fields

    We need id, price, and nested manufacturer with only name.
  2. Step 2: Write correct nested field selection

    { products { id price manufacturer { name } } } correctly nests name inside manufacturer and excludes location.
  3. Step 3: Check other options for errors

    { products { id price manufacturer { name location } } } includes unwanted location. { products { id price manufacturer name } } incorrectly places name outside manufacturer. { products { id price, manufacturer: { name } } } has invalid colon syntax.
  4. Final Answer:

    { products { id price manufacturer { name } } } -> Option B
  5. Quick Check:

    Select only needed nested fields [OK]
Hint: Nest only needed fields inside parent fields [OK]
Common Mistakes:
  • Selecting unwanted nested fields
  • Placing nested fields outside their parent
  • Using colon instead of braces for nesting
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard