我需要返回嵌套js graphql解析器中的对象数组。我有一个mongodb模式,其中包含多个对象数组。
@Schema()
@ObjectType()
export class Ingredient{
@Field(() => ID)
_id: string;
@Prop()
@Field({})
ingredient_name: string;
@Prop({type: mongoose.Types.Array})
suppliers: [IngredientSupplier]
}
Supplier字段是一个对象数组,它与supplier_id
schema和supplier_id
保持关系。
@Schema()
export class IngredientSupplier {
@Field(() => ID)
_id: string;
@Prop({ type: mongoose.Schema.Types.ObjectId, ref: 'Supplier' })
@Field()
supplier_id: string;
@Prop({ required: true })
@Field({})
supplier_name: string
@Prop({ nullable: true, default:0 })
@Field({})
unit_size: number;
@Prop({ nullable: true, default: "" } )
@Field({})
unit_type: string;
}
我在我的mongodb中成功地创建了 (突变) 成分记录。
{
_id: new ObjectId("640746a5959b153fd91be321"),
ingredient_name: 'test ingredient',
suppliers: [
{
supplier_id: new ObjectId("63f8618d7f193739fac93d51"),
supplier_name: 'test',
unit_size: 112,
unit_type: 'KG',
_id: new ObjectId("640746a5959b153fd91be322")
},
{
supplier_id: new ObjectId("63f880447f193739fac93d5d"),
supplier_name: 'test11',
unit_size: 114,
unit_type: 'KG',
_id: new ObjectId("640746a5959b153fd91be323")
}
],
但当我查询此记录时,我的apollo服务器操场不允许我获取供应商。我成功运行查询以导入配料名称和_ID****。我的返回类型为ResultIngredientDto
。
@ObjectType()
export class ResultIngredientDto {
@Field(()=>ID)
_id: string
@Field()
ingredient_name: string
suppliers: suppliers[]
}
@ObjectType()
export class suppliers {
@Field(()=>ID)
_id: string
@Field()
supplier_id: string
@Field({})
supplier_name: string
@Field()
unit_size: number
@Field({})
unit_type: string
}
我的图形只显示Playground
type ResultIngredientDto {
_id: ID!
ingredient_name: String!
}
有人能告诉我,我必须做什么样的改变才能得到供应商对象数组吗?我已经打印了我的查询输出,它打印了所有的细节。提前感谢你。
1条答案
按热度按时间lawou6xi1#
suppliers
属性还需要@Field
装饰器,以便您可以添加