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 verileri filtreleme (
Filtreleme, büyük veri kümelerini yalnızca ihtiyacınız olan kayıtlarla daraltıyor. GraphQL'de Veri API'si oluşturucusu (DAB), varlık sorgularında yapılandırılmış filter bir bağımsız değişkeni destekler. Her filtre, güvenlik ve tutarlılık için parametreli SQL'e derler.
Uyarı
GraphQL filtreleme karşılaştırmayı, mantıksal, dize deseni, üyeliği ve null işleçleri destekler.
GraphQL filtreleri yapılandırılmış giriş nesnelerini kullanır: { fieldName: { operator: value } }.
Tarihler geçerli ISO 8601 UTC dizeleri olmalıdır.
Null denetimler yerine eq nullkullanırisNull.
Hızlı bakış
| Operator | Meaning |
|---|---|
eq |
eşit |
neq |
eşit değil |
gt |
büyüktür |
gte |
büyüktür veya eşittir |
lt |
daha az |
lte |
küçüktür veya eşittir |
and |
mantıksal AND |
or |
mantıksal OR |
contains |
alt dize eşleşmesi |
notContains |
alt dize eşleşmedi |
startsWith |
ön ek eşleşmesi |
endsWith |
sonek eşleşmesi |
in |
Üyelik |
isNull |
null denetim |
eq
Eşittir. Bir alanın değerinin sağlanan değişmez değerle tam olarak eşleştiği veya kullanılıyorsa isNullnull olduğu kayıtları döndürür.
Uyarı
Tarih veya tarih saat alanlarını filtrelerken, alıntılanmamış ISO 8601 UTC biçimini (yyyy-MM-ddTHH:mm:ssZ) kullanın.
Alıntılanan veya OData stili biçimler geçersiz.
- Yanlış:
$filter=Date ge '2025-01-01' - Yanlış:
$filter=Date ge datetime'2025-01-01' - Doğru:
$filter=Date ge 2025-01-01T00:00:00Z
Bu örnekte, başlığın 'Dune'olduğu, kullanılabilir bayrağın true, fiyatın 20, yayımlanma tarihinin 1 Ocak 2024 ve derecelendirmenin null olduğu kitapları alıyoruz.
query {
books(filter: {
and: [
{ title: { eq: "Dune" } }
{ available: { eq: true } }
{ price: { eq: 20 } }
{ publishedOn: { eq: "2024-01-01T00:00:00Z" } }
{ rating: { isNull: true } }
]
}) {
items { id title available price publishedOn rating }
}
}
Kavramsal SQL
SELECT id, title, available, price, publishedOn, rating
FROM Books
WHERE title = 'Dune'
AND available = 1
AND price = 20
AND publishedOn = '2024-01-01T00:00:00Z'
AND rating IS NULL;
neq
Eşit değil. Bir alanın değerinin değişmez değerle eşleşmediği veya ile isNull: falsebirleştirildiğinde null olmadığı kayıtları döndürür.
Bu örnekte, başlığın olmadığı 'Foundation', kullanılabilir bayrağın yanlış olmadığı, fiyatın sıfır olmadığı, yayımlanma tarihinin 31 Aralık 2023 olmadığı ve derecelendirmenin null olmadığı kitaplar alıyoruz.
query {
books(filter: {
and: [
{ title: { neq: "Foundation" } }
{ available: { neq: false } }
{ price: { neq: 0 } }
{ publishedOn: { neq: "2023-12-31T00:00:00Z" } }
{ rating: { isNull: false } }
]
}) {
items { id title available price publishedOn rating }
}
}
Kavramsal SQL
SELECT id, title, available, price, publishedOn, rating
FROM Books
WHERE title <> 'Foundation'
AND available <> 0
AND price <> 0
AND publishedOn <> '2023-12-31T00:00:00Z'
AND rating IS NOT NULL;
gt
Büyüktür. Bir alanın değerinin sağlanan değişmez değerden kesinlikle yüksek olduğu kayıtları döndürür.
Bu örnekte, başlığı 'den sonra 'A'alfabetik olarak sıralanan, kullanılabilir bayrağı true, fiyatı 10'dan büyük ve yayımlanma tarihi 1 Ocak 2020'den sonra olan kitapları alıyoruz.
query {
books(filter: {
and: [
{ title: { gt: "A" } }
{ available: { gt: false } }
{ price: { gt: 10 } }
{ publishedOn: { gt: "2020-01-01T00:00:00Z" } }
]
}) {
items { id title available price publishedOn }
}
}
Kavramsal SQL
SELECT id, title, available, price, publishedOn
FROM Books
WHERE title > 'A'
AND available > 0
AND price > 10
AND publishedOn > '2020-01-01T00:00:00Z';
gte
Büyüktür veya eşittir. Bir alanın değerinin verilen değişmez değerden yüksek veya buna eşit olduğu kayıtları döndürür.
Bu örnekte, başlığı 'A' veya üzeri olan, kullanılabilir bayrağı doğru, fiyatı en az 10 olan ve yayımlanma tarihi 1 Ocak 2020 veya sonrasında olan kitaplar alacağız.
query {
books(filter: {
and: [
{ title: { gte: "A" } }
{ available: { gte: false } }
{ price: { gte: 10 } }
{ publishedOn: { gte: "2020-01-01T00:00:00Z" } }
]
}) {
items { id title available price publishedOn }
}
}
Kavramsal SQL
SELECT id, title, available, price, publishedOn
FROM Books
WHERE title >= 'A'
AND available >= 0
AND price >= 10
AND publishedOn >= '2020-01-01T00:00:00Z';
lt
Küçüktür. Bir alanın değerinin verilen değişmez değerden kesinlikle daha düşük olduğu kayıtları döndürür.
Bu örnekte, başlığı 'den önce 'Z'sıralanan, kullanılabilir bayrağı false, fiyatı 50'den küçük ve yayımlanma tarihi 1 Ocak 2030'dan önce olan kitapları alıyoruz.
query {
books(filter: {
and: [
{ title: { lt: "Z" } }
{ available: { lt: true } }
{ price: { lt: 50 } }
{ publishedOn: { lt: "2030-01-01T00:00:00Z" } }
]
}) {
items { id title available price publishedOn }
}
}
Kavramsal SQL
SELECT id, title, available, price, publishedOn
FROM Books
WHERE title < 'Z'
AND available < 1
AND price < 50
AND publishedOn < '2030-01-01T00:00:00Z';
lte
Küçük veya eşittir. Bir alanın değerinin verilen değişmez değerden düşük veya buna eşit olduğu kayıtları döndürür.
Bu örnekte, başlığı değerinden önce veya değerine eşit 'Z'olarak sıralanan, kullanılabilir bayrağı true, fiyatı 100 veya daha düşük olan ve yayımlanma tarihi 1 Ocak 2030 veya öncesinde olan kitapları alıyoruz.
query {
books(filter: {
and: [
{ title: { lte: "Z" } }
{ available: { lte: true } }
{ price: { lte: 100 } }
{ publishedOn: { lte: "2030-01-01T00:00:00Z" } }
]
}) {
items { id title available price publishedOn }
}
}
Kavramsal SQL
SELECT id, title, available, price, publishedOn
FROM Books
WHERE title <= 'Z'
AND available <= 1
AND price <= 100
AND publishedOn <= '2030-01-01T00:00:00Z';
and
Mantıksal VE. Kaydın eşleşmesi için tümü doğru olması gereken birden çok koşulu birleştirir.
Bu örnekte, 30'dan az maliyetli ve 1 Ocak 2022'den sonra yayımlanmış olan kitaplar alıyoruz.
query {
books(filter: {
and: [
{ available: { eq: true } }
{ price: { lt: 30 } }
{ publishedOn: { gt: "2022-01-01T00:00:00Z" } }
]
}) {
items { id title available price publishedOn }
}
}
Kavramsal SQL
SELECT id, title, available, price, publishedOn
FROM Books
WHERE available = 1
AND price < 30
AND publishedOn > '2022-01-01T00:00:00Z';
or
Mantıksal VEYA. Dizideki en az bir koşulun true olarak değerlendirildiği kayıtları döndürür.
Bu örnekte, stokta olmayan veya 50'nin üzerinde fiyatlanan kitaplar alıyoruz.
query {
books(filter: {
or: [
{ available: { eq: false } }
{ price: { gt: 50 } }
]
}) {
items { id title available price }
}
}
Kavramsal SQL
SELECT id, title, available, price
FROM Books
WHERE available = 0
OR price > 50;
contains
Alt dize eşleşmesi. Alanın sağlanan alt dizeyi içerdiği kayıtları döndürür (büyük/küçük harf duyarlılığı, veritabanı harmanlama işlemine bağlıdır).
Bu örnekte, başlığı "Dune" sözcüğünü içeren kitaplar alıyoruz.
query {
books(filter: { title: { contains: "Dune" } }) {
items { id title }
}
}
Kavramsal SQL
SELECT id, title
FROM Books
WHERE title LIKE '%Dune%';
notContains
Negatif alt dize eşleşmesi. Alanın sağlanan alt dizeyi içermediği kayıtları döndürür.
Bu örnekte, başlığında "Kılavuz" olmayan kitaplar alıyoruz.
query {
books(filter: { title: { notContains: "Guide" } }) {
items { id title }
}
}
Kavramsal SQL
SELECT id, title
FROM Books
WHERE title NOT LIKE '%Guide%';
startsWith
Ön ek eşleşmesi. Alanın sağlanan dizeyle başladığı kayıtları döndürür.
Bu örnekte, başlığı "The" ile başlayan kitaplar alıyoruz.
query {
books(filter: { title: { startsWith: "The" } }) {
items { id title }
}
}
Kavramsal SQL
SELECT id, title
FROM Books
WHERE title LIKE 'The%';
endsWith
Sonek eşleşmesi. Alanın sağlanan dizeyle sona erdiği kayıtları döndürür.
Bu örnekte, başlığı "Chronicles" ile biten kitaplar alıyoruz.
query {
books(filter: { title: { endsWith: "Chronicles" } }) {
items { id title }
}
}
Kavramsal SQL
SELECT id, title
FROM Books
WHERE title LIKE '%Chronicles';
in
Üyelik eşleşmesi. Sağlanan listede alanın değerinin bulunduğu kayıtları döndürür.
Bu örnekte, türü "SciFi" veya "Fantasy" olan kitaplar alıyoruz.
query {
books(filter: { genre: { in: ["SciFi", "Fantasy"] } }) {
items { id title genre }
}
}
Kavramsal SQL
SELECT id, title, genre
FROM Books
WHERE genre IN ('SciFi', 'Fantasy');
isNull
Null denetimi. Boole değişmez değerine bağlı olarak alanın değerinin null olduğu veya null olmadığı kayıtları döndürür.
Bu örnekte, derecelendirmenin null olduğu kitapları alıyoruz.
query {
books(filter: { rating: { isNull: true } }) {
items { id title rating }
}
}
Kavramsal SQL
SELECT id, title, rating
FROM Books
WHERE rating IS NULL;
Ö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.