0

我正在尝试为我的 DynamoDB 表构建一个过滤器表达式,以便在 javascript lambda 函数的扫描中使用。我的表模式有一个名为的字段,该字段dateRange具有以下结构(这只是一个示例,可能有任意数量的元素,并不总是 4 个):

在此处输入图像描述

我想返回表中第一个date字符串dateRange大于某个固定日期的所有项目。这是可能的吗?如果可以,FilterExpression会是什么样子?我基本上在寻找类似的东西FilterExpression: "#dateRange[0] >= :fixedDate

4

1 回答 1

2

JMLdev 我可以老实告诉你,你使用 NoSQL 数据库的方式应该是犯罪哈哈。

不!这不是我们做 NoSQL 的方式。您的第一个值应该是 Range 键,只需将值复制到另一个属性中即可。存储很便宜,扫描很昂贵,您希望对 NoSQL 数据库进行建模以优化检索信息,而不是节省少量空间,然后最终扫描整个数据库。

因此,复制该属性,如果需要将 LSIdateRange1作为 Range 键(或 GSI,如果必须),您就可以开始了。如果第一个值是某种特殊值,那么您可以从该列表中取出第一个值,那么您希望您的团队生活会更轻松!快乐编码。

于 2020-04-23T11:43:13.317 回答