首页 > 解决方案 > AWS Amplify 避免对 @key 或索引查询生成列表的 @connection 查询

问题描述

我有一个订单模型,我创建了一个索引,可以让我根据订单的创建月份和年份查询订单。既然我能够查询这些订单,我希望每次使用该月-年索引进行查询时避免不必要的连接(订单供应商)查询,因为我只想要订单编号和状态的列表。有没有办法我可以做到这一点?

这是我的架构:

type Vendor @model @searchable{
id: ID!
vendorName: String!
location: String!
telNo: String!
terms: String!
createdAt: AWSDateTime!
updatedAt: AWSDateTime!
}

type PurchaseOrder @model @searchable
@key(name:"MonthYearCreatedAt" fields:["monthYear", "createdAt"] queryField: "purchaseOrderMonthCreatedAt")
{
id: ID!
purchaseOrderNo: String!
vendor: Vendor! @connection
orders:[String!]
totalPrice: Float!
requestedBy: String!
category: String
addNotes: String
status: Status!
monthYear: String!
createdAt: AWSDateTime!
updatedAt: AWSDateTime!
}

标签: reactjsaws-amplifyaws-appsync

解决方案


您可以通过调整查询来做到这一点

query getPurchases {
  purchaseOrderMonthCreatedAt(monthYear: ..., createdAt: ...) {
    items {
      totalPrice
    }
  }
}

对比

query getPurchases {
  purchaseOrderMonthCreatedAt(monthYear: ..., createdAt: ...) {
    items {
      vendor { vendorName }
      totalPrice
    }
  }
}

使用第二个查询将导航供应商连接。


推荐阅读