fields
peut prendre une fonction au lieu d'un objet. De cette façon, le code à l'intérieur de la fonction ne sera pas évalué immédiatement :
fields: () => ({
id: { type: GraphQLID },
name: { type: GraphQLString },
category: {
type: CategoryType,
resolve: (parent) => Category.findOne({_id: parent.category}),
}
})