[서버]/[AWS & Firebase]

[DynamoDB] 두가지 필드 기준으로 정렬

Hevton 2022. 2. 13. 19:53
반응형

 

 

schema.graphql

type Post @model {
  id: ID!
  title: String!
  content: String
  comments: [Comment] @hasMany
}

type Comment @model {
  id: ID!
  content: String
  postCommentsId: ID!
  createdAt: String!
  skA: String!
  skB: String!
  type: String! @index(name: "CommentsByDate", queryField: "CommentsByDate", sortKeyFields: ["skA", "skB"])
}

 

 

skA 기준으로 먼저 정렬, 그리고 skB 기준으로 정렬되게끔 구현된 상태이다.

 

 

오름차순 결과

{
  "data": {
    "CommentsByDate": {
      "items": [
        {
          "content": "SIX",
          "skA": "a",
          "skB": "1",
          "type": "type"
        },
        {
          "content": "TWO",
          "skA": "a",
          "skB": "a",
          "type": "type"
        },
        {
          "content": "ONE",
          "skA": "a",
          "skB": "b",
          "type": "type"
        },
        {
          "content": "THREE",
          "skA": "a",
          "skB": "c",
          "type": "type"
        },
        {
          "content": "FOUR",
          "skA": "b",
          "skB": "a",
          "type": "type"
        },
        {
          "content": "FIVE",
          "skA": "e",
          "skB": "a",
          "type": "type"
        }
      ]
    }
  }
}

 

 

내림차순 결과

{
  "data": {
    "CommentsByDate": {
      "items": [
        {
          "content": "FIVE",
          "skA": "e",
          "skB": "a",
          "type": "type"
        },
        {
          "content": "FOUR",
          "skA": "b",
          "skB": "a",
          "type": "type"
        },
        {
          "content": "THREE",
          "skA": "a",
          "skB": "c",
          "type": "type"
        },
        {
          "content": "ONE",
          "skA": "a",
          "skB": "b",
          "type": "type"
        },
        {
          "content": "TWO",
          "skA": "a",
          "skB": "a",
          "type": "type"
        },
        {
          "content": "SIX",
          "skA": "a",
          "skB": "1",
          "type": "type"
        }
      ]
    }
  }
}

 

 

각 필드의 방향이 다를 경우엔 어떻게 해야 하는진 모르겠다..

ex) skA 오름차순, skB 내림차순

반응형