Amazon web services DynamoDB筛选:使用筛选表达式扫描列表类型中的单个条目

Amazon web services DynamoDB筛选:使用筛选表达式扫描列表类型中的单个条目,amazon-web-services,amazon-dynamodb,dynamodb-queries,amazon-dynamodb-data-modeling,Amazon Web Services,Amazon Dynamodb,Dynamodb Queries,Amazon Dynamodb Data Modeling,我正在尝试为我的DynamoDB表构建一个过滤器表达式,以便在javascript lambda函数的扫描中使用。我的表架构有一个名为dateRange的字段,该字段具有以下结构(这只是一个示例,可以有任意数量的元素,但不总是4个): 我想返回表中dateRange中第一个date字符串大于某个固定日期的所有项目。这可能吗?如果可能的话,FilterExpression会是什么样子?我基本上是在寻找类似于过滤器表达式的东西:“#dateRange[0]>=:fixedDateJMLdev我可以

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


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

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

不!这不是我们处理NoSQL的方式。您的第一个值应该是一个范围键,只需在另一个属性中复制该值即可。存储成本低,扫描成本高,您希望对NoSQL数据库进行建模,以优化检索信息,而不是节省一点点空间,然后扫描整个数据库


因此,复制该属性,如果需要,制作一个LSI,将
dateRange1
作为范围键(或者如果必须,制作一个GSI)如果第一个值是某种特殊值,那么您可以从列表中删除第一个值,这样您的团队生活就会更轻松!快乐编码。

JMLdev我可以诚实地告诉您,您使用NoSQL数据库的方式应该是犯罪哈哈

不!这不是我们处理NoSQL的方式。您的第一个值应该是一个范围键,只需在另一个属性中复制该值即可。存储成本低,扫描成本高,您希望对NoSQL数据库进行建模,以优化检索信息,而不是节省一点点空间,然后扫描整个数据库

因此,复制属性,如果需要,制作一个LSI,将
dateRange1
作为范围键(如果必须,也可以使用GSI)。如果第一个值是某种特殊值,那么您可以从该列表中删除第一个值,这样您的团队生活就会更轻松!快乐的编码