Score:0

Filtering on child properties in GraphQL

ธง hu

I am using GraphQL to get a list of upcoming events. I am having trouble finding the correct way to filter on the date value which is a child of my date field.

The query, which works:

query getUpcomingEvents {
  nodeQuery(
    filter: {
      conditions: [
        {operator: EQUAL, field: "type", value: ["ain_event"]},
        {operator: EQUAL, field: "status", value: ["1"]} 
      ]
    }
  )
  {
    entities {
      entityLabel
      ...on NodeAinEvent {
        fieldAinEventLocation
        fieldAinEventDate {
          startDate
          endDate
        }
        fieldAinLink {
          uri
        }
      }
    }
  }
}

I get this response:

 {
  "data": {
    "nodeQuery": {
      "entities": [
        {
          "entityLabel": "EAA AIRVENTURE",
          "fieldAinEventLocation": "OshKosh, WI",
          "fieldAinEventDate": {
            "startDate": "2021-07-26 12:00:00 UTC",
            "endDate": "2021-08-01 12:00:00 UTC"
          },
          "fieldAinLink": {
            "uri": "http://www.eaa.org/en/airventure"
          }
        },
        {
          "entityLabel": "FlightSimExpo",
          "fieldAinEventLocation": "San Diego, CA",
          "fieldAinEventDate": {
            "startDate": "2021-09-24 12:00:00 UTC",
            "endDate": "2021-09-26 12:00:00 UTC"
          },
          "fieldAinLink": {
            "uri": "http://www.flightsimexpo.com/"
          }
        },
        {
          "entityLabel": "Sun 'n Fun",
          "fieldAinEventLocation": "Lakeland, FL",
          "fieldAinEventDate": {
            "startDate": "2020-03-31 12:00:00 UTC",
            "endDate": "2020-04-05 12:00:00 UTC"
          },
          "fieldAinLink": {
            "uri": "https://www.flysnf.org/"
          }
        }
      ]
    }
  }
}

I tried adding this, to no avail:

{operator: GREATER_THAN_OR_EQUAL, field: "fieldAinEventDate.startDate", value: ["2021-07-25 12:00:00 UTC"]}
Kevin avatar
in flag
มันไม่ใช่ช่วงวันที่หรืออะไร? "มูลค่า" เป็นคุณสมบัติที่ถูกต้องหรือไม่?
hu flag
@Kevin ดูการแก้ไข - และข้อผิดพลาดที่ฉันได้รับคือ "Internal Server Error"
Kevin avatar
in flag
ข้อผิดพลาดที่บันทึกคืออะไร
hu flag
ฉันกำลังเรียกใช้สิ่งนี้ใน GraphiQL Explorer ของ Drupal ดังนั้นสิ่งที่ฉันมีคือ Watchdog ที่ระบุว่า "เรียกใช้ฟังก์ชันสมาชิก getColumns() บนบูล"
Kevin avatar
in flag
เสียงนี้เกี่ยวข้อง: https://github.com/drupal-graphql/graphql/issues/710
Score:1
ธง hu

พบคำตอบ - เห็นได้ชัดว่ามีการอ้างอิงฟิลด์ต่างกันในเงื่อนไขตัวกรอง งานนี้:

{โอเปอเรเตอร์: GREATER_THAN_OR_EQUAL, ฟิลด์: "field_ain_event_date", ค่า: ["2021-07-25 12:00:00 UTC"]}
Score:0
ธง in

ข้อมูลสำคัญที่นี่มาจาก ความคิดเห็น ในประเด็นที่ @Kevin อ้างถึง

คุณสามารถสอบถามฟิลด์ที่มีอยู่ในเอนทิตีเท่านั้น

เนื่องจากในที่สุดข้อความค้นหาของคุณจะถูกแปลงเป็น แบบสอบถามเอนทิตี. คุณต้องอ้างอิงฟิลด์และคุณสมบัติตามที่ Drupal เข้าใจ ไม่ใช่วิธีแสดงเมื่อส่งคืนจากการสืบค้น GraphQL

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา