Prisma findMany 函数不返回关系数据

Prisma findMany function is not returning relational data

我正在尝试使用 Prisma 2.28.0 用关系数据填充我的数据,这是我的

Schema.prisma以下型号

generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

model Product {
  id           Int         @id @default(autoincrement())
  name         String         @db.VarChar(255)
  transactions Transaction[]
}

model Transaction {
  id        BigInt   @id @default(autoincrement())
  quantity  Int
  time      Int
  product  Product? @relation(fields: [productId], references: [id])
  productId Int?
}


我正在尝试获取数据的函数。

const { PrismaClient }=require("@prisma/client")

const prisma = new PrismaClient()

async function checkPrismaConnection(){
    try {
        const result=await prisma.product.findMany();
        console.log(result);
    }catch (e) {
        console.log(e);
    }
}

 checkPrismaConnection();

输出

[
  { id: 1, name: 'John Doe' },
  { id: 2, name: 'Masum' },
  { id: 3, name: 'Rezaul' }
]

事务数据库结果

产品数据库

我不知道为什么我的 findMany() 没有重新调整关系数据库数据。谢谢

我建议阅读文档,尤其是 this chapter 和后面的文档。在他们的示例中,他们有一个 AuthorPost,其中 Post 有一个指向 Authorauthor 字段。他们的代码如下所示:

const getPosts = await prisma.post.findMany({
  where: {
    title: {
      contains: 'cookies',
    },
  },
  include: {
    author: true, // Return all fields
  },
})

“包含深层嵌套关系”一章实际上使用了一个字段 .category,它也是一个数组,如您的示例 .transactions.

您需要将 include 显式设置为 true。

所以您的代码看起来像这样

const { PrismaClient }=require("@prisma/client")

const prisma = new PrismaClient()

async function checkPrismaConnection(){
   try {
    const result=await prisma.product.findMany({
      include: {
        transaction: true,
       },
   });
    console.log(result);
}catch (e) {
    console.log(e);
}
}

 checkPrismaConnection();