我正在尝试连接两个 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"])
}
我希望能够发送 RecommendationId =100 和 uservehicleId = 1 以获得这样的响应
我使用的查询是这样工作的,但它使用了过滤子句,该子句使用了扫描操作,并且有一个限制,即只能获取前 100 条记录,然后对这 100 条记录应用过滤器。如果可能的话,我想在我当前正在运行过滤器的地方运行一个查询。如果可能,我不想使用自定义解析器,除非这是唯一的出路。
query byrecomendIdQuery{
byrecomendId(recomendId: 100) {
items {
id
displayName
history (filter: {uservehicleId: {eq: "1"}}) {
items{
status
actionTakenDate
}
}
}
}
}