NodeJs Prisma 双包含 属性
NodeJs Prisma double include property
我的项目中有 3 个模型模式:
供应商:id + name
商品:id + name + vendorId
类别:id + name + ItemId
我需要创建一个 Prisma 查询架构,以便我检索类别,包括商品和供应商的详细信息。
棱镜模型:
model Vendor {
id Int @id @default(autoincrement())
name String @db.VarChar(255)
Item Item[]
@@map("Vendors")
}
model Item {
id Int @id @default(autoincrement())
name String @db.VarChar(255)
vendor Vendor @relation(fields: [vendorId], references: [id])
vendorId Int
Category Category[]
@@map("Items")
}
model Category {
id Int @id @default(autoincrement())
name String @db.VarChar(255)
item Item @relation(fields: [itemId], references: [id])
itemId Int
@@map("Categories")
}
快递端点如下:
router.get('', async (req, res) => {
try {
let items = await prisma.Category.findMany({
include: {
item: true
},
});
res.status(200).json(items)
} catch (error) {
res.json(error.message);
}
});
现在的代码,它将 return 类别列表以及每个类别的项目,但是,该项目将包含 vendorId 而不是供应商详细信息。我应该在代码中添加什么以在没有 foreach 循环的情况下获取供应商详细信息
通过此查询获取类别时,您可以获得 vendors
和 items
。
let items = await prisma.category.findMany({
include: {
item: {
include: {
vendor: true,
},
},
},
});
console.log(items);
这是查询的示例响应:
[
{
"id": 1,
"name": "mobile",
"itemId": 1,
"item": {
"id": 1,
"name": "Iphone",
"vendorId": 1,
"vendor": {
"id": 1,
"name": "Apple Inc"
}
}
}
]
我的项目中有 3 个模型模式:
供应商:id + name
商品:id + name + vendorId
类别:id + name + ItemId
我需要创建一个 Prisma 查询架构,以便我检索类别,包括商品和供应商的详细信息。
棱镜模型:
model Vendor {
id Int @id @default(autoincrement())
name String @db.VarChar(255)
Item Item[]
@@map("Vendors")
}
model Item {
id Int @id @default(autoincrement())
name String @db.VarChar(255)
vendor Vendor @relation(fields: [vendorId], references: [id])
vendorId Int
Category Category[]
@@map("Items")
}
model Category {
id Int @id @default(autoincrement())
name String @db.VarChar(255)
item Item @relation(fields: [itemId], references: [id])
itemId Int
@@map("Categories")
}
快递端点如下:
router.get('', async (req, res) => {
try {
let items = await prisma.Category.findMany({
include: {
item: true
},
});
res.status(200).json(items)
} catch (error) {
res.json(error.message);
}
});
现在的代码,它将 return 类别列表以及每个类别的项目,但是,该项目将包含 vendorId 而不是供应商详细信息。我应该在代码中添加什么以在没有 foreach 循环的情况下获取供应商详细信息
通过此查询获取类别时,您可以获得 vendors
和 items
。
let items = await prisma.category.findMany({
include: {
item: {
include: {
vendor: true,
},
},
},
});
console.log(items);
这是查询的示例响应:
[
{
"id": 1,
"name": "mobile",
"itemId": 1,
"item": {
"id": 1,
"name": "Iphone",
"vendorId": 1,
"vendor": {
"id": 1,
"name": "Apple Inc"
}
}
}
]