fields
può prendere una funzione invece di un oggetto. In questo modo il codice all'interno della funzione non verrà valutato immediatamente:
fields: () => ({
id: { type: GraphQLID },
name: { type: GraphQLString },
category: {
type: CategoryType,
resolve: (parent) => Category.findOne({_id: parent.category}),
}
})