Appsync & GraphQL: how to sort a list by nested value

Viewed 106

I have an Appsync API generated by Amplify from a basic schema. On the SocialMediaDocument model, a ctr field is nested within a stats field. I want to build a Query that provides a list of SocialMediaDocument sorted by ctr. Is this possible ? Or should I sotre the ctr on my SocialMediaDocument ?

type SocialMediaDocument
  @model
  @auth(
    rules: [
      { allow: owner, operations: [create, read] }
      { allow: groups, groupsField: "organizationGroupName" }
      { allow: groups, groups: ["Admin"], operations: [create, read, update, delete] }
    ]
  )
  @key(
    name: "socialMediaDocumentsByCustomerID"
    fields: ["customerID", "createdAt"]
    queryField: "socialMediaDocumentsByCustomerID"
  )
  @key(
    name: "socialMediaDocumentsByRequestStatus"
    fields: ["requestStatus"]
    queryField: "sociaMediaDocumentsByRequestStatus"
  )
  @key(
    name: "socialMediaDocumentsByOrganizationID"
    fields: ["organizationID", "createdAt"]
    queryField: "socialMediaDocumentsByOrganizationID"
  ) {
  id: ID!
  stats: [SocialMediaDocumentStats!]
}

type SocialMediaDocumentStats {
  date: AWSDate
  ctr: Float!
  engagementRate: Float!
  postClicksLifetime: Float!
  postEngagedUsersLifetime: Float!
  postImpressionsLifetime: Float!
}
0 Answers
Related