FilterExpression获取项目字段数组不是空的dynamoDb使用javascript &



请知道我如何过滤这个示例dynamodb表,以仅返回至少一个字段"old"或";new"数组不是空的,在下面的示例表中,它应该返回id为"2"的项。和"3"。

表:字段名= item

[
{
id: "1",
product: {"new": [], "old": []},
},
{
id: "2",
product: {"new": [{name: "a"}], "old": [name: "a"]},
},
{
id: "3",
product: {"new": [], "old": [name: "a"]},
},
]

我希望过滤器类似于:

FilterExpression: 'isTest = :boolean',
ExpressionAttributeValues: { ':boolean': isTest },

假设列表中的每个项目都是表中的单个项目,那么您可以使用Scan和以下FilterExpression实现您的用例:

aws dynamodb scan 
--table-name <tablename> 
--filter-expression 'size(#v.#o) > :num OR size(#v.#n) > :num' 
--expression-attribute-names '{"#v": "product", "#o": "old", "#n":"new"}' 
--expression-attribute-values '{":num":{"N":"0"}}'

使用size过滤功能:

如果属性类型为List或Map,则size返回子元素的个数。示例:检查一星评论的数量是否超过了某一阈值。表达式属性值:v_sub是3的占位符。size(ProductReviews.OneStar) > :v_sub

相关内容

  • 没有找到相关文章

最新更新