Как выполнить сортировку в Prisma для поля с числами
Есть вот такой код:
if (category && city) {
return this.prisma.task.findMany({
where: {
AND: [
{category: category},
{address: {contains: city}}
]
},
orderBy: [
{commentsCount: sortDirection},
],
take: limit,
skip: page > 0 ? limit * (page - 1) : undefined,
});
}
Хочу выполнить сортировку(orderBy) по полю commentsCount в котором храниться количество комментариев и получаю ошибку:
Type '{ commentsCount: "desc" | "asc"; }' is not assignable to type 'TaskOrderByWithRelationInput'.
Object literal may only specify known properties, and 'commentsCount' does not exist in type 'TaskOrderByWithRelationInput'.ts(2322)
Искал в доках и на разных ресурсах как выполняется сортировка и везде один и тот же затасканный пример с сортировкой по дате создания (createdAt). А как делается сортировка для поля с числом я так нигде и не нашёл. Может тут кто подскажет, почему сортировка не работает.
Ответы (1 шт):
Похоже нет в Призме встроенного метода для сортировки по числам. По крайней мере я не нашёл и здесь никто не ответил.
Поэтому убрал orderBy из кода и получил не отсортированный массив тасков.
А затем уже с помощью Array.prototype.sort вручную отсортировал полученный массив:
return tasks.sort((taskA, taskB) => taskB.commentsCount - taskA.commentsCount);