使用哈希和范围查询单个值? (亚马逊 DynamoDB)
Query a single value with Hash and Range? (Amazon DynamoDB)
这似乎是一个愚蠢的问题,但是:据我所知,散列键和范围键的组合作为一种在 table 中唯一标识项目的方式。但是,我见过的每个数据库示例以及查询文档都显示使用散列 and/or 范围键查询到 return 多个值。如何使用范围和散列来查询(或其他一些操作)单个项目?
来自 DynamoDB 客户端文档 here,当查询 table 时,查询 returns 具有相同散列键的所有项目。如果 table 只有散列类型主键(与散列+范围类型主键相反),则结果将包含零项或一项。如果 table 有 hash + range 主键,那么结果可以包含零个或多个项目。在哈希 + 范围主键的情况下,如果提供范围键比较运算符(等于、介于等),则可以将查询结果缩小到更少的记录。为范围查询提供等于比较运算符将 return 零个或一个记录。
所以,return一个项目实际上只是return一个项目列表的一个特例。
但是,如果您认为使用 API 获取单个项目有助于提高代码的语义/可读性 - 您可以使用 getItem.
的变体
这似乎是一个愚蠢的问题,但是:据我所知,散列键和范围键的组合作为一种在 table 中唯一标识项目的方式。但是,我见过的每个数据库示例以及查询文档都显示使用散列 and/or 范围键查询到 return 多个值。如何使用范围和散列来查询(或其他一些操作)单个项目?
来自 DynamoDB 客户端文档 here,当查询 table 时,查询 returns 具有相同散列键的所有项目。如果 table 只有散列类型主键(与散列+范围类型主键相反),则结果将包含零项或一项。如果 table 有 hash + range 主键,那么结果可以包含零个或多个项目。在哈希 + 范围主键的情况下,如果提供范围键比较运算符(等于、介于等),则可以将查询结果缩小到更少的记录。为范围查询提供等于比较运算符将 return 零个或一个记录。
所以,return一个项目实际上只是return一个项目列表的一个特例。
但是,如果您认为使用 API 获取单个项目有助于提高代码的语义/可读性 - 您可以使用 getItem.
的变体