当从Node访问记录时,是否可以在特定dynamodb记录中包含的map上运行过滤器或排序,js?

8zzbczxx  于 2023-04-29  发布在  Node.js
关注(0)|答案(1)|浏览(74)

我在dynamoDB中有一个记录,其结构如下

{
  "object_id": {
    "S": "users.notifications.{uid}"
  },
  "notifications": {
    "M": {
      "1682360554277": {
        "M": {
          "body": {
            "S": "test_body"
          },
          "heading": {
            "S": "test_heading"
          },
          "timestamp": {
            "N": "1682360554277"
          }
        }
      },
      "1682360555921": {
        "M": {
          "body": {
            "S": "test_body"
          },
          "heading": {
            "S": "test_heading"
          },
          "timestamp": {
            "N": "1682360555921"
          }
        }
      }
    }
  },
  "owner": {
    "S": "users.notifications"
  }
}

当使用Node AWS-SDK时,是否可以运行某种类型的过滤器表达式,该表达式将根据Map中每个记录中的时间戳对通知Map进行排序?理想情况下,我希望只提取过去30天的记录。我不确定这是否可能,但从我谷歌。任何帮助将不胜感激!

sd2nnvve

sd2nnvve1#

它可能不会按照您希望的方式工作:

FilterExpression: "notifications.1682360554277.timestamp > (30days) AND notifications.1682360555921.timestamp > (30days)"

如果你垂直分片你的项目,并为每个通知单独的项目,这将使你能够更有效地查询它,这将是更好的。

相关问题