Запаздалый ответ, но все же.
Когда вы деплоите схему, на каждый тип формируется три типа запроса (речь про Query):
object - уникальный объект
objects - список объектов
objectsConnection - список объектов с данными количества и т.п.
В вашем случаем это будет
query {
gamesConnection{
aggregate{
count
}
edges{
node{
id
}
}
}
}
Ответ будет типа:
{
"data": {
"gamesConnection": {
"aggregate": {
"count": 0
},
"edges": []
}
}
}
Соответственно edges не обязательно указывать, если вам надо получить только кол-во записей.
Важный момент: в более ранних версиях призмы (типа 1.15) aggregate возвращало общее кол-во найденных объектов. То есть, к примеру, если вы напишите такой запрос:
query {
gamesConnection (
where: {
name_contains: "Test"
}
first: 2
){
aggregate{
count
}
edges{
node{
id
}
}
}
}
Вы могли получить ответ типа
{
"data": {
"gamesConnection": {
"aggregate": {
"count": 15
},
"edges": [{id:"dsfdsf"}, {"id":"sdfsdgds}]
}
}
}
То есть Получено 2 записи (потому что first: 2 указано), но всего найдено 15 записей, содержащих в названии "Test".
Так вот, в более поздних версиях (и сейчас), aggregate возвращает именно кол-во полученных записей, то есть в нашем случае вернет не 15, а 2 (потому что получил 2 записи), даже если там всего 15 записей имеется. Я считаю, что такое изменение абсолютно бессмысленно (потому что на стороне клиента я и сам могу посчитать сколько объектов получил), и даже тикет им отправлял, но они сказали, что это фича, а не бага.
По этой причине надо писать запросы типа так:
query games (
$where: GameWhereInput
$first: Int
){
gamesConnection (
where: $where
){
aggregate{
count
}
}
games (
where: $where
first: $first
){
id
name
}
}
То есть тут сразу два запроса с передачей условия и лимита как параметры.
В первый (подсчет) передается только условие. А во второй (непосредственно список объектов) уже условие и лимит (и другие параметры, если надо). Ответ будет типа
{
"data": {
"gamesConnection": {
"aggregate": {
"count": 0
}
},
"games": []
}
}