Запрос findUnique возвращает null для полей массива

Я прочитал Prisma Relations документации и исправил мой findMany запрос, который может возвращать действительные данные, но я получаю противоречивые результаты с помощью findUnique.

Схема

model User {
  id       Int       @id @default(autoincrement())
  fname    String
  lname    String
  email    String
  password String
  vehicles Vehicle[]
}

model Vehicle {
  id      Int    @id @default(autoincrement())
  vin     String @unique
  model   String
  make    String
  drivers User[]
}

Typedefs

const typeDefs = gql'
    type User {
      id: ID!
      fname: String
      lname: String
      email: String
      password: String
      vehicles: [Vehicle]
    }

    type Vehicle {
      id: ID!
      vin: String
      model: String
      make: String
      drivers: [User]
    }

    type Mutation {
      post(id: ID!, fname: String!, lname: String!): User
    }

    type Query {
      users: [User]
      user(id: ID!): User
      vehicles: [Vehicle]
      vehicle(vin: String): Vehicle
    }
'

Этот работает

users: async (_, __, context) => {
        return context.prisma.user.findMany({
          include: { vehicles: true}
        })
      },

Однако по какой-то причине версия findUnique не разрешает поле массива для транспортных средств.

Этот не работает

user: async (_, args, context) => {
     const id = +args.id
     return context.prisma.user.findUnique({ where: {id} }, 
         include: { vehicles: true}
     )
},

Вот что он возвращает

{
  "data": {
    "user": {
      "id": "1",
      "fname": "Jess",
      "lname": "Potato",
      "vehicles": null
    }
  }
}

Я читал о фрагментах и ​​пытался найти документацию по преобразователям графов, но я не нашел ничего подходящего, что могло бы решить эту проблему.

Любое понимание будет оценено! Спасибо!


person Ani T    schedule 02.01.2021    source источник


Ответы (1)


Вам нужно исправить аргументы, переданные в findUnique. Обратите внимание на расположение { и }.

Изменять

return context.prisma.user.findUnique({ where: { id } },
  //                                                  ^
  include: { vehicles: true}
)

to

return context.prisma.user.findUnique({
  where: { id }, 
  include: { vehicles: true }
})
person pzaenger    schedule 02.01.2021
comment
Вы не представляете, сколько часов я занимаюсь этим. СПАСИБО!! - person Ani T; 02.01.2021
comment
Пожалуйста :) - person pzaenger; 02.01.2021