AWS AppSync Graphql 等效于左连接查询

时间:2020-12-19 04:42:25

标签: left-join aws-appsync

我正在尝试连接两个 dynamoDb 表以获得类似于左连接的结果集。这是相关表格的缩小版本

  type MaintenanceRecomendationsMaster
  @model
  @key(name: "byrecomendID", fields: ["recomendId"], queryField: "byrecomendID") {
  id: ID!
  recomendId: Int!
  displayName: String!
  history: [UserMaintenanceHistory]
    @connection(keyName: "byRecomendationsMasterId", fields: ["id"])
}

这是它连接的另一个表

type UserMaintenanceHistory
@model
  @key(name: "byUserVehicleId", fields: ["uservehicleId"])
  @key(name: "byRecomendationsMasterId", fields: ["RecomendationsMasterId"]) {
  id: ID!
  status: String
  actionTakenDate: AWSDateTime
  uservehicleId: ID!
  RecomendationsMasterId: ID!
  maintenanceCache: MaintenanceRecomendationsMaster
    @connection(fields: ["RecomendationsMasterId"])
}

这是带有数据的表格的样子 enter image description here

我希望能够发送 RecommendationId =100 和 uservehicleId = 1 以获得这样的响应 enter image description here

我使用的查询是这样工作的,但它使用了过滤子句,该子句使用了扫描操作,并且有一个限制,即只能获取前 100 条记录,然后对这 100 条记录应用过滤器。如果可能的话,我想在我当前正在运行过滤器的地方运行一个查询。如果可能,我不想使用自定义解析器,除非这是唯一的出路。

    query byrecomendIdQuery{
        byrecomendId(recomendId: 100) {
        items {
            id
            displayName
            history (filter: {uservehicleId: {eq: "1"}})  {
            items{
                status
                actionTakenDate
             }
            }
         }
        }
    }

0 个答案:

没有答案