当前位置: 首页 > 知识库问答 >
问题:

在分区键上使用IN运算符查询dynamoDB

太叔昊苍
2023-03-14

我有一张名为产品的桌子。它的架构

  1. CustomerNumber(字符串类型的哈希键)
  2. ProductID(字符串类型的范围键)
SELECT * FROM products WHERE CustomerNumber IN ("cust123","cust234"). 

>

  • DynamodbQueryExpression将只对索引/hashkey进行查询,而不是对hashkey列表进行查询,如上例所示。

    此外,DynamoDBQueryExpression不支持OR运算符。

    另外,BatchLoad只使用主键(在我的例子中是customerNumber和productID)记录来返回记录批。

    同样,在customerNumber上创建GSI,然后查询它也不起作用

  • 共有1个答案

    伊裕
    2023-03-14

    选择*where PartitionKeyin IN...不同,您将为IN条件的每个值执行与选择*where partitionkey=...等效的单独查询。它花费你在网络上额外的几次往返,但仅此而已;如果您关心速度,可以并行执行各个查询。

     类似资料:
    • 问题是我得到错误(过滤器表达式只能包含非主键属性:主键属性:名称)。租户是我的主分区键,名称是我的主排序键。 我需要在dynamo db中编写与此等效的内容:从项目中选择*,其中tenant='testProject',name in('John','Dave')。

    • 问题内容: 我正在寻找一种使用数组中的“ IN”子句查询postgres jsonb字段的方法。 假设我有一张桌子 我需要选择test_content数组中的label可能为或的行。 我试过了 但是当我想用包含扩展查询时,或者变得复杂… 我需要的是 jsonb运算符可以吗? 问题答案: 简短答案 您可以在横向联接中使用该函数,并在子句中的复杂表达式中使用其结果: 不同 当在单个行中的多个数组元素中

    • 我是DynamoDB的新手,想知道我们如何通过在JAVA中使用ONLY分区键来查询DynamoDB中的表 我有一个名为“ervive pdi data invalid qa”的表,其模式是: 分区键为SubmissionId 排序键是id。 城市(属性) 错误(属性) 这张桌子看起来像这样:桌子 我想通过使用(software.amazon.awssdk)新版本的AWS SDK DynamoDB类

    • 问题内容: …按预期工作,但是如果我需要像这样检查多个字符串怎么办: …似乎不起作用。 问题答案:

    • 问题内容: 我正在尝试通过IN运算符使用MySQL查询,并在Golang项目中使用未定义数量的参数。 我正在使用该软件包,并尝试在此Stackoverflow答案上构建我的解决方案:如何使用Golang在SQL中执行IN查找? 我读过一些类似的文章,为我提供了一些建议,但是我被困在查询的执行部分,因为它不允许直接使用slice作为参数。 Golang在执行时向我返回错误: 查询:SELECT ID

    • 我正在DynamoDB中设计一个表,它将包含大量记录,每个记录都有一个唯一的ID和一个时间戳。我需要检索一组位于两个日期之间的记录,而不管所有其他属性值如何。 为时间戳字段添加全局辅助索引似乎是一个合乎逻辑的解决方案,但这并不简单。 DynamoDB中的Query命令需要一个KeyConditionExpression参数,该参数确定查询返回的结果。从DynamoDB开发人员指南: 要指定搜索条件