BelongsTo
If you have not read the HasMany guide, please do so before continuing.
From the example on HasMany, you can add @BelongsTo to define the Product to Store relationship.
@Definition()
export class Product {
@Id()
id: ObjectId;
@Property()
name: string;
@Property({ type: () => GraphQLObjectId })
storeId: ObjectId;
@BelongsTo(() => Store, { from: 'storeId' })
store: Store;
}Resolve field
You will be able to resolve the store field on the Product type.
query {
product(id: "000000000000000000000000") {
id
name
store {
name
id
}
storeId
}
}💡
To prevent resolving the store field, set noPopulation to true.
@Definition()
export class Product {
@BelongsTo(() => Store, { from: 'storeId', noPopulation: true })
store: Store;
}Ensure relationship
By default, you cannot create a Product with a storeId that does not exist. You can change this behavior by setting the skipExistenceCheck option to true.
@Definition()
export class Product {
@BelongsTo(() => Store, { from: 'storeId', skipExistenceCheck: true })
store: Store;
}