DynamoDB:是否可以获取列表数据类型中的最后一个元素?
DynamoDB: Is it possible to get the last element in the list datatype?
我有如下文档:
{'id': 123,
'favorites': [5, 3, 7, 8, 1, 9, 2]}
在本文档中,收藏夹为列表类型。我想查询最近的收藏夹或first/last5个收藏夹。我不确定如何在 DynamoDB 中实现这一点。请帮忙。
在寻找这个问题一段时间后,很遗憾,DynamoDB 不支持它。可能吧,以后会支持的。
当前(2021 年 6 月 22 日)example of documentation,他们使用 size(info.actors)
来获取尺寸。
你可以这样做:
ConditionExpression='#list[0] = :num',
ConditionExpression='size(#list) = :num',
但是,您不能这样做:
ConditionExpression='#list[ size(#list)-1 ] = :num',
根据
boto3 documentation,貌似获取不到最后一个元素
目前我发现的最佳解决方法是:
- 反转所有列表,然后使用
#list[0]
- 使用
contains(#list, :elem)
我有如下文档:
{'id': 123,
'favorites': [5, 3, 7, 8, 1, 9, 2]}
在本文档中,收藏夹为列表类型。我想查询最近的收藏夹或first/last5个收藏夹。我不确定如何在 DynamoDB 中实现这一点。请帮忙。
在寻找这个问题一段时间后,很遗憾,DynamoDB 不支持它。可能吧,以后会支持的。
当前(2021 年 6 月 22 日)example of documentation,他们使用 size(info.actors)
来获取尺寸。
你可以这样做:
ConditionExpression='#list[0] = :num',
ConditionExpression='size(#list) = :num',
但是,您不能这样做:
ConditionExpression='#list[ size(#list)-1 ] = :num',
根据 boto3 documentation,貌似获取不到最后一个元素
目前我发现的最佳解决方法是:
- 反转所有列表,然后使用
#list[0]
- 使用
contains(#list, :elem)