Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Filtrera data i GraphQL (
Filtrering begränsar stora datamängder till endast de poster du behöver. I GraphQL stöder Data API Builder (DAB) ett strukturerat filter argument för entitetsfrågor. Varje filter kompileras till parametriserad SQL för säkerhet och konsekvens.
Anmärkning
GraphQL-filtrering stöder jämförelse,logiska operatorer, strängmönster, medlemskap och nulloperatorer.
GraphQL-filter använder strukturerade indataobjekt: { fieldName: { operator: value } }.
Datum måste vara giltiga ISO 8601 UTC-strängar.
Null-kontroller används isNull i stället för eq null.
Snabbblick
| Operator | Meaning |
|---|---|
eq |
lika |
neq |
inte lika med |
gt |
mer än |
gte |
större än eller lika med |
lt |
mindre än |
lte |
mindre än eller lika med |
and |
logisk AND |
or |
logisk OR |
contains |
matchning av delsträngar |
notContains |
inte delsträngsmatchning |
startsWith |
prefixmatchning |
endsWith |
suffixmatchning |
in |
medlemskap |
isNull |
null-kontroll |
eq
Lika med. Returnerar poster där ett fälts värde exakt matchar den angivna literalen eller är null om du använder isNull.
Anmärkning
När du filtrerar efter datum- eller datetime-fält använder du osciterat ISO 8601 UTC-format (yyyy-MM-ddTHH:mm:ssZ).
Format i quot- eller OData-format är ogiltiga.
- Fel:
$filter=Date ge '2025-01-01' - Fel:
$filter=Date ge datetime'2025-01-01' - Rätt:
$filter=Date ge 2025-01-01T00:00:00Z
I det här exemplet får vi böcker där rubriken är 'Dune', den tillgängliga flaggan är sann, priset är 20, det publicerade datumet är 1 januari 2024 och omdömet är null.
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 }
}
}
Konceptuell 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
Inte lika med. Returnerar poster där ett fälts värde inte matchar literalen eller inte är null när det kombineras med isNull: false.
I det här exemplet får vi böcker där rubriken inte 'Foundation'är , den tillgängliga flaggan är inte falsk, priset är inte noll, det publicerade datumet är inte 31 december 2023 och omdömet är inte null.
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 }
}
}
Konceptuell 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
Större än. Returnerar poster där ett fälts värde är strikt högre än den angivna literalen.
I det här exemplet får vi böcker vars titel sorteras alfabetiskt efter 'A', den tillgängliga flaggan är sann, priset är större än 10 och det publicerade datumet är efter den 1 januari 2020.
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 }
}
}
Konceptuell 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
Större än eller lika med. Returnerar poster där ett fälts värde är högre än eller lika med den angivna literalen.
I det här exemplet får vi böcker vars titel är 'A' eller senare, den tillgängliga flaggan är sann, priset är minst 10 och det publicerade datumet är den 1 januari 2020 eller senare.
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 }
}
}
Konceptuell 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
Mindre än. Returnerar poster där ett fälts värde är strikt lägre än den angivna literalen.
I det här exemplet får vi böcker vars titel sorterar före 'Z', den tillgängliga flaggan är false, priset är mindre än 50 och det publicerade datumet är före den 1 januari 2030.
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 }
}
}
Konceptuell 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
Mindre än eller lika med. Returnerar poster där ett fälts värde är lägre än eller lika med den angivna literalen.
I det här exemplet får vi böcker vars titel sorterar före eller lika med 'Z', den tillgängliga flaggan är sann, priset är 100 eller mindre och det publicerade datumet är den 1 januari 2030 eller före den 1 januari 2030.
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 }
}
}
Konceptuell 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
Logiskt OCH. Kombinerar flera predikat som alla måste vara sanna för att en post ska matcha.
I det här exemplet får vi böcker som är tillgängliga, kostar mindre än 30 och publicerades efter den 1 januari 2022.
query {
books(filter: {
and: [
{ available: { eq: true } }
{ price: { lt: 30 } }
{ publishedOn: { gt: "2022-01-01T00:00:00Z" } }
]
}) {
items { id title available price publishedOn }
}
}
Konceptuell SQL
SELECT id, title, available, price, publishedOn
FROM Books
WHERE available = 1
AND price < 30
AND publishedOn > '2022-01-01T00:00:00Z';
or
Logiskt ELLER. Returnerar poster där minst ett predikat i matrisen utvärderas till sant.
I det här exemplet får vi böcker som antingen är slut i lager eller prissatta över 50.
query {
books(filter: {
or: [
{ available: { eq: false } }
{ price: { gt: 50 } }
]
}) {
items { id title available price }
}
}
Konceptuell SQL
SELECT id, title, available, price
FROM Books
WHERE available = 0
OR price > 50;
contains
Matchning av delsträngar. Returnerar poster där fältet innehåller den angivna delsträngen (skiftlägeskänsligheten beror på databassortering).
I det här exemplet får vi böcker vars titel innehåller ordet "Dune".
query {
books(filter: { title: { contains: "Dune" } }) {
items { id title }
}
}
Konceptuell SQL
SELECT id, title
FROM Books
WHERE title LIKE '%Dune%';
notContains
Negativ delsträngsmatchning. Returnerar poster där fältet inte innehåller den angivna delsträngen.
I det här exemplet får vi böcker vars titel inte innehåller "Guide".
query {
books(filter: { title: { notContains: "Guide" } }) {
items { id title }
}
}
Konceptuell SQL
SELECT id, title
FROM Books
WHERE title NOT LIKE '%Guide%';
startsWith
Prefixmatchning. Returnerar poster där fältet börjar med den angivna strängen.
I det här exemplet får vi böcker vars titel börjar med "The".
query {
books(filter: { title: { startsWith: "The" } }) {
items { id title }
}
}
Konceptuell SQL
SELECT id, title
FROM Books
WHERE title LIKE 'The%';
endsWith
Suffixmatchning. Returnerar poster där fältet slutar med den angivna strängen.
I det här exemplet får vi böcker vars titel slutar med "Chronicles".
query {
books(filter: { title: { endsWith: "Chronicles" } }) {
items { id title }
}
}
Konceptuell SQL
SELECT id, title
FROM Books
WHERE title LIKE '%Chronicles';
in
Medlemskapsmatchning. Returnerar poster där fältets värde finns i den angivna listan.
I det här exemplet får vi böcker vars genre antingen är "SciFi" eller "Fantasy".
query {
books(filter: { genre: { in: ["SciFi", "Fantasy"] } }) {
items { id title genre }
}
}
Konceptuell SQL
SELECT id, title, genre
FROM Books
WHERE genre IN ('SciFi', 'Fantasy');
isNull
Null-kontroll. Returnerar poster där ett fälts värde antingen är null eller inte null beroende på den booleska literalen.
I det här exemplet får vi böcker där omdömet är null.
query {
books(filter: { rating: { isNull: true } }) {
items { id title rating }
}
}
Konceptuell SQL
SELECT id, title, rating
FROM Books
WHERE rating IS NULL;
Exempelkonfiguration
{
"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" ]
}
}
}
}
}
Se även
| Begrepp | REST | GraphQL | Avsikt |
|---|---|---|---|
| Projection | $select | items | Välj vilka fält som ska returneras |
| Filtering | $filter | filtrera | Begränsa rader efter villkor |
| Sortering | $orderby | orderBy | Definiera sorteringsordningen |
| Sidstorlek | $first | first | Begränsa antalet objekt per sida |
| Fortsättning | $after | efter | Fortsätt från den sista sidan med hjälp av en markör |
Anmärkning
REST-nyckelord börjar med $, enligt OData-konventioner.