У меня есть эта функция, которая работает:
export const tagsByLabel = async (params) => {
const findManyParams = {
where: { userId: userIdFromSession },
orderBy: { title: 'asc' },
}
if (params) {
const { searchTerm } = params
findManyParams.where.title = { contains: searchTerm }
}
console.log('findManyParams', findManyParams)
const tagsByLabelResult = await db.tag.findMany(findManyParams)
console.log('tagsByLabelResult', tagsByLabelResult)
return tagsByLabelResult
}
Если я ищу 'mex', я вижу:
findManyParams {
where: { userId: 1, title: { contains: 'mex' } },
orderBy: { title: 'asc' }
}
tagsByLabelResult [
{
id: 9,
title: 'mex',
description: 'Mexican food',
userId: 1,
createdAt: 2020-05-03T22:16:09.134Z,
modifiedAt: 2020-05-03T22:16:09.134Z
}
]
И для пустого запроса, tagsByLabelResult
содержит все тег записи.
Как я могу настроить мою функцию tagsByLabel
, чтобы агрегировать (используя «группировать по») записи и выводить «количество» для каждой записи tagsByLabelResult
в порядке убывания количества ?
tagsByLabelResult [
{
id: 9,
title: 'mex',
description: 'Mexican food',
count: 25,
userId: 1,
createdAt: 2020-05-03T22:16:09.134Z,
modifiedAt: 2020-05-03T22:16:09.134Z
}
]
Я вижу пример docs из prisma.user.count()
, но, похоже, он возвращает простой подсчет результата всего запроса, а не подсчет как поле "group by".
Я использую Redwood Js, Prisma 2, Apollo, GraphQL.