The following situation has developed. I can not display the necessary values from the following array.
{ "data": { "car": { "mark": "BMW", "models": [ { "model": "315", "generations": [ { "generation": "(1934-1937)", "bodies": [ { "body": "Родстер" }, { "body": "Седан 2 дв." } ] } ] }, { "model": "321", "generations": [ { "generation": "I (1937-1950)", "bodies": [ { "body": "Седан 2 дв." } ] } ] }, { "model": "326", "generations": [ { "generation": "I (1936-1946)", "bodies": [ { "body": "Седан" } ] } ] }
I have the following diagram in graphql
export default ` type Transmission{ transmission: String! capacity: [Int!] } type Engine{ engine: String! transmissions: [Transmission] } type Body{ body: String! engines: [Engine] } type Generation { generation: String! years: [Int!] bodies: [Body] } type Model { model: String! generations: [Generation] } type Car { _id: String! mark: String! models: [Model] } type Query { car(_id: ID, mark: String): Car! cars: [Car!]! } type Mutation { createCar(car: CreateCarInput): Car! updateCar(_id: String!, car: UpdateCarInput!): Car! deleteCar(_id: String!): Car! } input CreateCarInput { name: String! email: String! age: Int! } input UpdateCarInput { name: String email: String age: Int } `;
Resolver in graphql I have the following:
import Cars from "../../../models/Cars"; export default { Query: { car: async (parent, { _, args, mark }, context, info) => { return await Cars.findOne({ mark: mark }).exec(); }, cars: async (parent, args, context, info) => { const cars = await Cars.find({}) .sort({ mark: 1 }) .populate() .exec(); return cars.map(u => ({ _id: u._id.toString(), mark: u.mark, models: u.models })); } },
I want to get car models on the next request
{ car(mark:"BMW"){ mark, models(model:"Z4") { model, generations { generation, bodies { body } } } } }
The following error appears
{ "errors": [ { "message": "Unknown argument \"mark\" on field \"models\" of type \"Car\".", "locations": [ { "line": 4, "column": 10 } ] } ] }
I'm new to programming. For a couple of days I have been racking my brains over the next error. I would be grateful if someone says what I am doing wrong.