Dul*_*ndu 6 prisma prisma-graphql
我Order在我的datamodel.prisma文件中创建了一个实体。在那里它应该自动生成名为orderRef. createOrder对于每个突变调用,它应该为Order 实体的字段自动生成增量值。
对于第一个订单,“orderRef”字段的值应为 OD1,第二个订单的“orderRef”字段的值应为 OD2,依此类推。例如:
(OD1, OD2, .... OD124, ..... )
实现这一目标的最简单方法是什么?是的,值应该是字符串,而不是数字。
目前,Prisma 中无法自动生成递增字段。然而,有一个关于 Field Behaviour 的 RFC,它将在未来允许这种功能。
目前,有3种选择:
1/ 创建节点时,进行查询以检索相同类型的最后一个节点,并递增最后一个值。
query {
things(orderBy: createdAt_desc, first: 1) {
myId
}
}
...
newId = myId + 1
...
mutation {
createThing(data: {myId: newId, ... }) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
2/ 创建节点时,进行聚合查询以检索相同类型的所有节点的计数,并根据计数递增。(但是,如果删除以前的节点,您可能会发现自己多次具有相同的值。)
query {
thingsConnection {
aggregate {
count
}
}
}
...
newId = count + 1
...
mutation {
createThing(data: {myId: newId, ... }) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
3/ 如果您需要的是用户可读的 ID,请考虑创建随机 6 个字符长的字符串或使用库。(这将消除额外查询的需要,但随机性可能会产生令人惊讶的行为)
| 归档时间: |
|
| 查看次数: |
1962 次 |
| 最近记录: |