这是我的模型:

model ExampleModel {
  id   String @id @default(auto()) @map("_id") @db.ObjectId
  name String @unique
  foo  ...
}

enum Tags {
  TagA
  TagB
  TagC
}

我想将foo的类型设置为标记数组(foo的示例值为['TagA', 'TagC'].我该怎么做?使用foo Tags[]foo的类型设置为"TagA"[] | undefined

推荐答案

如果您想让foo成为Tags枚举数组,您确实可以使用foo Tags[].然而,类型"Taga[]|unfined"意味着foo可以是Taga数组,也可以是未定义的(未设置).这是在Prisma中定义数组字段时的预期类型,但不是必需的,也没有缺省值.

如果您希望foo始终有一个值(即,它永远不能未定义),您可以通过在@default指令后面添加一个空数组作为默认值,使其成为必填字段,如下所示:

model ExampleModel {
  id   String @id @default(auto()) @map("_id") @db.ObjectId
  name String @unique
  foo  Tags[] @default([])
}

enum Tags {
  TagA
  TagB
  TagC
}

在这个修改后的模式中,foo是必填字段,如果没有提供值,则默认为空array.它将始终是一个标记数组,永远不会是未定义的.

Database相关问答推荐

无法初始化数据库,出现错误无法连接到`host=db user=database=`:拨号错误(dial tcp xxxx: connect: connection refused)

如何在保持相同 Flyway 校验和的同时更正语法?

一个强大的 MySQL 管理工具,具有与 SQL Server Management Studio 类似的功能

MYSQL CASE 语句多条件

数据库设计 - 类别(categories)和子类别(sub-categories)

如何使用错误消息中指定的 tbspaceid tableid 在 DB2 中查找表和列

在 model.save() 中处理竞争条件

在不稳定的网络中保持分布式数据库同步

Postgres pg_dump 每次都以不同的顺序转储数据库

我可以为 dapper-dot-net 映射指定数据库列名称吗?

在 PostgreSQL 上获取数据库创建日期

使用 PHPUnit 进行数据库测试的最佳实践

使用 typeORM 搜索早于日期的数据

无法加载时区?

在 Rails 中销毁/删除数据库

Django 数据库值的最佳推荐方式是什么?

在单个 postgres 查询中多次调用 `now()` 是否总是给出相同的结果?

PDO SQL 状态00000但仍然错误?

如果表不存在,如何使用 Derby Db 创建表

清空数据库是什么意思?