[英]Filter one to many exact data in appsync graphql
我已經模擬了這個:
type FreightDriver
@model
@key(
name: "byCityByState"
fields: ["state", "city"]
queryField: "freightDriversByStateByCity"
) {
id: ID!
name: String!
state: String!
city: String!
trucks: [Truck] @connection(keyName: "byFreightDriver", fields: ["id"])
}
type Truck
@model
@key(name: "byFreightDriver", fields: ["freightDriverId", "tons"]) {
id: ID!
freightDriverId: ID!
boxId: ID!
brand: String!
model: String!
tons: Float!
box: Box @connection(fields: ["boxId"])
}
type Box @model {
id: ID!
type: String!
width: Float!
height: Float!
depth: Float!
}
我正在查詢這樣的數據:
query {
freightDriversByStateByCity(state: "Jalisco", city: { eq: "Guadalajara" }) {
items {
id
name
city
state
trucks(tons: { eq: 12 }) {
items {
brand
model
box {
type
}
}
}
}
}
}
我得到的回應是:
{
"data": {
"freightDriversByStateByCity": {
"items": [
{
"id": "aebb6696-573d-41ed-894e-22b69264cace",
"name": "Diey",
"city": "Guadalajara",
"state": "Jalisco",
"trucks": {
"items": [
{
"brand": "chevrolet",
"model": "12",
"box": {
"type": "Refrigerada"
}
}
]
}
},
{
"id": "6e8e6772-61e7-47d6-b134-d615a3c65f62",
"name": "Roberto Mendez",
"city": "Guadalajara",
"state": "Jalisco",
"trucks": {
"items": []
}
},
{
"id": "d314808c-64e7-421d-b83b-008177ab6b25",
"name": "Roberto Mendez",
"city": "Guadalajara",
"state": "Jalisco",
"trucks": {
"items": []
}
},
{
"id": "19847d0c-185c-48f6-9e5c-435e3907133a",
"name": "Andrés",
"city": "Guadalajara",
"state": "Jalisco",
"trucks": {
"items": [
{
"brand": "chevrolet",
"model": "1234",
"box": {
"type": "Refrigerada"
}
},
{
"brand": "chevrolet",
"model": "1234",
"box": {
"type": "Grúa"
}
},
{
"brand": "chevrolet",
"model": "12",
"box": {
"type": "Refrigerada"
}
}
]
}
},
{
"id": "2c4c9e3a-bfe5-4d4e-bee7-3eddb1b8ef1b",
"name": "Roberto Mendez ",
"city": "Guadalajara",
"state": "Jalisco",
"trucks": {
"items": []
}
},
{
"id": "cb4eb22c-aa54-416e-aecc-305a18bc9c83",
"name": "Roberto Mendez",
"city": "Guadalajara",
"state": "Jalisco",
"trucks": {
"items": []
}
}
]
}
}
}
如果你檢查一下,有一些是這樣的:
"trucks": {
"items": []
}
我怎樣才能避免它們? 我的model是錯的model嗎? 謝謝!
您可以使用映射模板在返回給客戶端之前修改響應數據:
響應映射模板使用 Apache 速度模板語言 (VTL) 編寫,並將解析器的結果轉換回 GraphQL。
在這種情況下,您可以檢查trucks.items
是否為空,如果是,則在返回之前從trucks
中刪除items
數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.