Điểm:0

Filtering on child properties in GraphQL

lá cờ 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
lá cờ in
Nó không phải là một phạm vi ngày hay bất cứ điều gì là nó? "Giá trị" có phải là tài sản đúng không?
lá cờ hu
@Kevin xem chỉnh sửa - và lỗi tôi gặp chỉ là "Lỗi máy chủ nội bộ"
Kevin avatar
lá cờ in
Lỗi đăng nhập là gì?
lá cờ hu
Chà, tôi đang chạy cái này trong Drupal's GraphiQL Explorer, vì vậy tất cả những gì tôi có là Watchdog cho biết "Gọi hàm thành viên getColumns() trên bool"
Kevin avatar
lá cờ in
Điều này nghe có vẻ liên quan: https://github.com/drupal-graphql/graphql/issues/710
Điểm:1
lá cờ hu

Đã tìm thấy câu trả lời - rõ ràng các trường được tham chiếu khác nhau trong các điều kiện lọc. Những công việc này:

{toán tử: GREATER_THAN_OR_EQUAL, trường: "field_ain_event_date", giá trị: ["25-07-2021 12:00:00 UTC"]}
Điểm:0
lá cờ in

Thông tin quan trọng ở đây đến từ một lời bình luận trong vấn đề @Kevin đã tham chiếu.

Bạn chỉ có thể truy vấn các trường có sẵn trên thực thể.

Điều này là do truy vấn của bạn cuối cùng được chuyển đổi thành truy vấn truy vấn thực thể. Bạn phải tham khảo các trường và thuộc tính của chúng khi Drupal hiểu chúng, chứ không phải cách chúng được hiển thị khi được trả về từ một truy vấn GraphQL.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.