Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
GraphQL'de sonuçları sıralama (
Sıralama, döndürülen kayıtların sırasını tanımlar ve kararlı sayfalandırmayı sağlar. GraphQL'de Veri API oluşturucusu (DAB), veya afteruygulamadan first önce sonuçları sıralamak için bağımsız değişkenini kullanırorderBy. atlarsanız orderBy, DAB varsayılan olarak birincil anahtara göre (artan) sıralamayı kullanır.
Uyarı
Bileşik birincil anahtarlar, veritabanı sütun sırasına göre sıralanır.
Bu belgenin REST sürümüne gidin.
Genel Bakış
| Konsept | Description |
|---|---|
| Argument | orderBy |
| Yön değerleri |
ASC, DESC |
| Varsayılan sipariş | Birincil anahtar artan |
| Çok alanlı sipariş | Bildirilen nesne özelliği sırasına göre sıralandı |
| Kravat kesme | Kalan birincil anahtar alanları otomatik olarak eklenir |
Kullanım düzeni
query {
books(orderBy: { year: DESC, title: ASC }, first: 5) {
items {
id
title
year
}
}
}
Kavramsal SQL
SELECT TOP (5)
id,
sku_title AS title,
year
FROM dbo.books
ORDER BY year DESC, sku_title ASC, id ASC;
Örnek yanıt
{
"data": {
"books": {
"items": [
{ "id": 7, "title": "Dune Messiah", "year": 1969 },
{ "id": 6, "title": "Dune", "year": 1965 },
{ "id": 3, "title": "Foundation", "year": 1951 },
{ "id": 1, "title": "I, Robot", "year": 1950 },
{ "id": 8, "title": "The Martian Chronicles", "year": 1950 }
]
}
}
}
Alan davranışı
| Görünüş | Davranış |
|---|---|
| Giriş türü | Numaralandıran skaler alanlar oluşturuldu *OrderByInput |
| Yön sabit listesi |
ASC, DESC |
| Bileşik sipariş | Öncelik, bildirim sırasını izler |
| Null yön | Alanı sıralamanın dışında tutar (title: null) |
| Bilinmeyen alan | GraphQL doğrulama hatası üretir |
Alanı yoksayma örneği
query {
books(orderBy: { title: null, id: DESC }) {
items { id title }
}
}
Geçersiz yapılar
GraphQL, içinde orderBymantıksal işleçleri (and, or) yasaklar. Örneğin, aşağıdakiler bir doğrulama hatası oluşturur:
books(orderBy: { or: { id: ASC } })
Değişken kullanma örneği
query ($dir: OrderBy) {
books(orderBy: { id: $dir }, first: 4) {
items { id title }
}
}
Variables
{ "dir": "DESC" }
İlgili yapılandırma
{
"entities": {
"Book": {
"source": {
"object": "dbo.books",
"type": "table"
},
"mappings": {
"sku_title": "title"
}
}
}
}
Örnek yapılandırma
{
"runtime": {
"pagination": {
"default-page-size": 100,
"max-page-size": 100000
}
},
"entities": {
"Book": {
"source": {
"type": "table",
"object": "dbo.books"
},
"mappings": {
"sku_title": "title",
"sku_price": "price"
},
"relationships": {
"book_category": {
"cardinality": "one",
"target.entity": "Category",
"source.fields": [ "category_id" ],
"target.fields": [ "id" ]
}
}
},
"Category": {
"source": {
"type": "table",
"object": "dbo.categories"
},
"relationships": {
"category_books": {
"cardinality": "many",
"target.entity": "Book",
"source.fields": [ "id" ],
"target.fields": [ "category_id" ]
}
}
}
}
}
Ayrıca bakınız
| Konsept | REST | GraphQL | Amaç |
|---|---|---|---|
| Projection | $select | items | Döndürülecek alanları seçme |
| Filtering | $filter | filtre | Satırları koşula göre kısıtlama |
| Sıralama | $orderby | orderBy | Sıralama düzenini tanımlama |
| Sayfa Boyutu | $first | first | Sayfa başına öğe sayısını sınırlama |
| Devam | $after | sonra | İmleç kullanarak son sayfadan devam et |
Uyarı
REST anahtar sözcükleri, OData kurallarını izleyerek ile $başlar.