Prisma 客户端选择表中的所有行

Kra*_*ier 10 javascript mysql orm express prisma

如何使用 prisma 从表中选择所有内容?(从应用程序中选择 *)

const applications = prisma.application.findMany({
        // Returns all user fields
        include: {
            posts: {
                select: {
                    age: true,
                    about_section: true,
                    user_id: true
                },
            },
        },
    })
    console.log(applications.age)
Run Code Online (Sandbox Code Playgroud)

我的架构如下所示:

model application {
  application_id Int     @id @default(autoincrement())
  age            String? @db.VarChar(255)
  about_section  String? @db.VarChar(255)
  user_id        Int?
  users          users?  @relation(fields: [user_id], references: [user_id], onDelete: Restrict, onUpdate: Restrict, map: "application_ibfk_1")

  @@index([user_id], map: "user_id")
}
Run Code Online (Sandbox Code Playgroud)

Iro*_*ife 9

对于行,findMany()没有where将返回表中的所有行:

获取所有记录
以下 findMany 查询返回所有用户记录:

const users = await prisma.user.findMany()
Run Code Online (Sandbox Code Playgroud)

对于列/字段,如果不指定includeselect,prisma 有一个默认值

默认情况下,当查询返回记录(而不是计数)时,结果包括默认选择集:

  • Prisma 模式中定义的所有标量字段(包括枚举)
  • 没有任何关系

对于SELECT * FROM application(不包括users关系):

const applications = await prisma.application.findMany();
Run Code Online (Sandbox Code Playgroud)

为了进一步users在模型中包含关系:

const applications = await prisma.application.findMany({
  include: {
    users: true // will include all fields
  }
});
Run Code Online (Sandbox Code Playgroud)