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

Amazon DynamoDB具有多个BeginsWith的多个扫描条件

鱼阳伯
2023-03-14

我在Amazon DynamoDB表分区键和范围键。

表结构

Subscriber ID (partition key) | Item Id (Range Key) | Date        |...
123                           | P_345               | some date 1 | ...
123                           | I_456               | some date 2 |
123                           | A_678               | some date 3 | ... 

现在我想使用带有多个扫描条件的QueryAsyncC#库从表中检索数据。

  • HashKey=123

有什么方法可以使用c#dynamoDB API实现这一点吗?请帮忙

共有1个答案

孟开宇
2023-03-14

您需要执行以下操作(我不是C#专家,但您可以使用以下说明来找到正确的C#语法):

  1. 因为您正在寻找特定的hashkey,所以这将是一个Query请求,而不是Scan
  2. 范围键上有一个begins_with()条件。使用Key条件表达式参数指定QueryKey条件表达式将请求HashKey=123 ANDbegins_with(RangeKey,P_)。
  3. 但是,Key条件表达式不允许OR(rangekey以P_或I_开头)。您只需要运行两个独立的查询——一个带有“I_”,一个带有“P_”(如果您愿意,您甚至可以并行执行这两个查询)。
  4. 日期不是关键字列之一,因此您需要使用查询的FilterExpress参数对其进行筛选。请注意,过滤只发生在最后一步,在DynamoDB已经读取了上面匹配的所有项目之后(如果过滤删除了很多项目,并且您仍然会为它们付费,这可能会增加您的成本)。
 类似资料:
  • 我在dynamoDB中有带分区键和范围键的表。 表结构 现在,我想使用C#库在多个扫描条件下从表中检索数据。 Hashkey=123 条件1;日期在“某个日期1”和“某个日期2”之间 条件2。范围键begins_with I_和p_ 有什么方法可以使用C#dynamoDB API实现这一点吗?请帮忙

  • 我尝试在数据帧“df_energy”中添加一个新的列“energy_class”,如果“consumpion_energy”值为 有什么办法可以帮我吗? 先谢谢你

  • 我收集了用户在商店购买的物品,以及他从朋友那里得到的喜欢和不喜欢的东西。集合字段如下所示: 现在,我想得到以下总结: 获取用户X的(喜欢-不喜欢)差异 获取用户X的差异(喜欢-不喜欢)到存储Y 获取用户X的(喜欢-不喜欢)差异到商店Y和产品Z 对于#1,我做了: 我得到了正确的结果: [{"_id":"542ea90fbb1e37b09f660980","rankDiff": 2}] 但当我试图通

  • 问题内容: 我想知道是否可能有这样的事情: 知道项目是通过请求接收的JSON容器,因此这就是为什么我使用键值方法的原因。 谢谢 我之所以问是因为我尝试使用Google进行谷歌搜索,但是我唯一能得到的结果是,但是我必须使用。 问题答案: 你当然可以。就像是: HTML JS 演示小提琴

  • 问题内容: 我有一个数据集,其中我试图确定每个人的危险因素数量。所以我有以下数据: 每个属性(年龄,吸烟者,糖尿病)都有自己的条件来确定是否是危险因素。因此,如果年龄> = 45,则是一个危险因素。吸烟者和糖尿病为“ Y”是危险因素。我想要添加一列,以根据这些条件总计每个人的风险因素数量。因此数据如下所示: 我有一个样本数据集,我在Excel中鬼混,而我这样做的方式是使用COUNTIF公式,如下所

  • 问题内容: 我正在尝试做的是拥有多个具有不同变量的输入。每个变量将是不同方程式的一部分。我正在寻找一种方法来做,我想我有一个主意。我只想知道这是否合法,也许还有更好的方法。 问题答案: 如果每个输入都问相同的问题,则应使用循环和输入数组: 或者如Chip所建议的,您可以从一行中解析输入: 您在正确的轨道上,所做的工作正常。这只是一种更好,更灵活的处理方式。