---
title: Sayfalama, Filtreleme ve Sıralama
description: Liste sorgularında sayfalama, filtre operatörleri ve sıralama söz dizimi.
---

`list...` ile başlayan sorguların çoğu sayfalı sonuç döndürür ve ortak filtre input'larını kullanır.

## Sayfalama

Sayfalama `pagination` argümanıyla yapılır:

| Alan | Açıklama |
| --- | --- |
| `page` | Getirilecek sayfa. Varsayılan `1`. |
| `limit` | Sayfa başına kayıt sayısı. En az `1`, en fazla `200`, varsayılan `50`. |

Yanıt, kayıtları `data` alanında döndürür. `hasNext` daha fazla kayıt olup olmadığını, `count` istenen sayfadaki kayıt sayısını gösterir.

```graphql
query ListProduct($pagination: PaginationInput) {
  listProduct(pagination: $pagination) {
    count
    hasNext
    page
    limit
    data {
      id
      name
    }
  }
}
```

```json
{ "pagination": { "page": 1, "limit": 50 } }
```

Tüm kayıtları almak için `hasNext` değeri `false` olana kadar `page` değerini artırarak istek gönderin.

## Filtre operatörleri

Filtre argümanları alan tipine göre bir filtre input'u alır.

| Input | Operatörler |
| --- | --- |
| `StringFilterInput` | `eq`, `ne`, `in`, `nin` |
| `DateFilterInput` | `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin` |
| Enum filtreleri (`OrderStatusEnumInputFilter` gibi) | `eq`, `ne`, `in`, `nin` |

Tarih alanları milisaniye cinsinden Unix zaman damgası (`Timestamp`) kullanır. Örneğin son 24 saatte güncellenen siparişler:

```json
{
  "updatedAt": { "gte": 1735639200000 },
  "pagination": { "page": 1, "limit": 50 }
}
```

## Sıralama

`sort` argümanı alan adını string olarak alır. Artan sıralama için alan adını, azalan sıralama için başına `-` ekleyerek yazın:

- `createdAt`: en eskiden en yeniye
- `-createdAt`: en yeniden en eskiye

Sıralanabilen alanlar her sorgunun açıklamasında belirtilir.

## Arama

Bazı liste sorguları serbest metin araması için `search` argümanı alır. Aramanın hangi alanlarda yapıldığı ilgili sorgunun açıklamasında yer alır.
