В настоящее время вы не можете иметь автоматически генерируемые инкрементные поля в Prisma. Тем не менее, существует RFC о поведении поля, который позволил бы использовать такую функцию в будущем.
В настоящее время есть 3 варианта:
1 / При создании вашего узла сделайте запрос для получения последнего узла того же типа и увеличьте последнее значение.
query {
things(orderBy: createdAt_desc, first: 1) {
myId
}
}
...
newId = myId + 1
...
mutation {
createThing(data: {myId: newId, ... }) {
...
}
}
2 / При создании вашего узла сделайте запрос агрегации, чтобы получить количество всех узлов одного типа и увеличить его на основе количества. (Однако, если вы удалите предыдущие узлы, вы можете обнаружите, что у вас есть одно и то же значение несколько раз.)
query {
thingsConnection {
aggregate {
count
}
}
}
...
newId = count + 1
...
mutation {
createThing(data: {myId: newId, ... }) {
...
}
}
3 / Если вам нужен читабельный идентификатор для вашего пользователя, рассмотрите возможность создания случайной строки длиной 6 символов или с использованием библиотеки . (Это устранит необходимость для дополнительного запроса, но случайность может иметь удивительное поведение)