问题标签 [dynamodb-queries]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1009 浏览

amazon-dynamodb - 在 dynamodb 中对 GSI 执行条件表达式查询

我知道 DynamoDB 不支持下面的查询,因为您必须在 HASH 键上使用相等表达式。 query({ TableName, IndexName, KeyConditionExpression: 'purchases >= :p', ExpressionAttributeValues: { ':p': 6 } }); 如何组织我的数据,以便我可以有效地查询购买的所有商品 >= 6 次?

现在我只有 3 列,orderID(主键)address、、confirmations(GSI)。

对这种类型的查询使用不同类型的数据库会更好吗?

0 投票
1 回答
1377 浏览

database-design - 管理 AWS DynamoDB 中分层文件夹结构中可用的文档

我是 DynamoDB(文档数据库)的新手,在设计 nosql 数据库中的表结构时需要帮助。

我需要管理不同文件夹中可用的文档。文件夹层次结构可以进入第 n 级,并且同一文档可以在多个文件夹中使用。

在关系数据库的情况下,我可以在不同的表中维护层次结构和文档,并通过在这些表上应用连接来提取所需的信息。

我需要知道将这些数据存储在 DynamoDB 表中的最佳方式,以便以最有效的方式提取信息。每个用户都将拥有一定的权限,基于这些权限他/她可以查看或编辑文档。

目前我正在尝试将其存储在以下结构中:

在 documentId 的帮助下,我可以从文件夹表中提取文档所在的文件夹列表以及该文件夹的详细信息,但不确定如何维护文件夹层次结构。

有人可以帮我解决这个问题吗?

0 投票
1 回答
1659 浏览

java - DynamoDb 查询枚举

我是 dynamoDB 的新手,这个问题可能还很幼稚。

我正在尝试从表中查询一个项目,但 dynamo api 无法将查询 json 结果转换为类实例,因为类中存在枚举变量成员。

我的班级结构:[注意 RequestStage 是 Enum 成员]

请求阶段枚举:

当我从该表中查询某些内容时,我收到以下错误。

线程“主”com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingException 中的异常:无法在 com.amazonaws.services.dynamodbv2.datamodeling.ConversionSchemas$StandardItemConverter.createObject(ConversionSchemas.java:614) 处实例化类的新实例.amazonaws.services.dynamodbv2.datamodeling.ConversionSchemas$StandardItemConverter.unconvert(ConversionSchemas.java:414) 在 com.amazonaws.services.dynamodbv2.datamodeling.unmarshallers.ObjectUnmarshaller.unmarshall(ObjectUnmarshaller.java:54) 在 com.amazonaws.services .dynamodbv2.datamodeling.unmarshallers.NullableUnmarshaller.unmarshall(NullableUnmarshaller.java:46) 在 com.amazonaws.services.dynamodbv2.datamodeling.ConversionSchemas$StandardItemConverter.unmarshall(ConversionSchemas.java:593) 在 com.amazonaws.services。dynamodbv2.datamodeling.ConversionSchemas$StandardItemConverter.unconvert(ConversionSchemas.java:426) 在 com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.privateMarshallIntoObject(DynamoDBMapper.java:630) 在 com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper。 marshallIntoObjects(DynamoDBMapper.java:661) 在 com.amazonaws.services.dynamodbv2.datamodeling.PaginatedQueryList.(PaginatedQueryList.java:65) 在 com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.query(DynamoDBMapper.java:1856) 在com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.query(DynamoDBMapper.java:1844) 在 com.amazon.optimus.dynamoHelper.DynamoDBUtil.queryRecord(DynamoDBUtil.java:112) 在 com.amazon.optimus.dynamoHelper.DynamoDBUtil。 main(DynamoDBUtil.java:164) 引起:java.lang。InstantiationException:com.amazon.optimus.enums.RequestStage at java.lang.Class.newInstance(Class.java:427) at com.amazonaws.services.dynamodbv2.datamodeling.ConversionSchemas$StandardItemConverter.createObject(ConversionSchemas.java:611)。 .. 12 更多原因:java.lang.NoSuchMethodException: com.amazon.optimus.enums.RequestStage.() at java.lang.Class.getConstructor0(Class.java:3082) at java.lang.Class.newInstance(Class .java:412) ... 还有 13 个getConstructor0(Class.java:3082) at java.lang.Class.newInstance(Class.java:412) ... 13 更多getConstructor0(Class.java:3082) at java.lang.Class.newInstance(Class.java:412) ... 13 更多

从异常中可以清楚地看出,java 无法实例化枚举。我怎样才能解决这个问题并使它工作?感谢您的帮助。

0 投票
1 回答
7202 浏览

amazon-web-services - DynamoDB 中的通配符搜索

我想在 DynamoDB 中通过 PHP 使用通配符搜索。我浏览了 AWS 文档,但没有找到。请帮我解决这个问题。我使用了这样的过滤器表达式:

0 投票
1 回答
373 浏览

amazon-dynamodb - 如何查看表中是否存在具有特定属性的哈希键

我有一个同时具有 HashKey 和 RangeKey 的表。

该表包含许多发送到设备的不同消息。

HashKey 是每个设备唯一的 ID,RangeKey 是消息发送时间的时间戳。

消息的属性之一是表示消息类型的 INT。

我要查找的是所有具有特定消息类型的唯一设备 ID 都曾出现在表中。

例如,假设有 100 个设备,每个设备有 100 条消息;总共 10 000 条消息。消息类型 7 很少见,在这 10 000 条消息中,只有 50 条消息属于类型 7,而这 50 条消息可能只发送到 20 个不同的设备。

是否有一种简单(且快速)的方法来获取曾经有过类型 7 消息的每个唯一设备 ID?

我知道我可以扫描表格,过滤消息类型,然后跟踪结果中出现的唯一设备 ID。但这有两个问题,扫描整个表很慢,而且当我只需要知道它是否曾经以该消息类型出现时,结果中也会多次出现相同的唯一设备 ID。(在这个例子中,这不是什么大问题,但有数以千万计的消息,我想避免在扫描结果中一遍又一遍地检查相同的设备 ID)

我可以用我没有想到的查询或 GSI 做些什么吗?

0 投票
1 回答
1115 浏览

c# - DynamoDB 查询返回零结果

我正在尝试查询 DynamoDB 表以根据其 url 查找产品。

该表具有三个字段:标题、描述和网址。

使用上面的代码,我可以连接到表。然后我执行下面的查询,它不返回任何错误但是结果列表是空的。我期望在 Url 与“test”匹配的地方返回一个结果。

虽然这在代码中不起作用,但在从 AWS Web 门户/控制台查看项目列表时,我能够在数据库中找到该条目,因此我知道该条目存在。

我在过滤器中犯了错误吗?

0 投票
2 回答
7454 浏览

amazon-dynamodb - 如何在 DynamoDB 中按数组(或嵌套对象)中的元素进行过滤

我的数据如下:

我有主键orgId,例如,我想使用 DynamoDBquery过滤并仅返回具有“科学”类别的项目。

(类别不需要是任何索引的一部分:我愿意接受额外的工作人员开销,前提是我可以在 Dynamo 本身内进行查询。)

我有一段时间让这个工作正常。categories如果有帮助,我可以很容易地更改为嵌套对象?

但是 DynamoDB 中的比较运算符非常有限,以至于似乎无法按数组元素或嵌套对象进行过滤?

如果没有,这里有什么更好的方法?将每个类别转化为自己的一级属性,例如:

确定不是吗?

0 投票
0 回答
953 浏览

amazon-dynamodb - DynamoDB 查询以返回多个项目

我在 DynamoDB 中解决此问题时遇到问题。我需要创建一个卖家表及其位置,以 Long 和 Lat 属性表示。

现在,如果我有买家。我需要退回买家 1 英里半径内的所有卖家。

如何构建我的卖家表,如果我需要 GSI,我该怎么做?假设我有一个公式可以计算出起始经度/纬度和结束经度/纬度。所以我需要 DynamoDB 退回位于上下边界之间的任何卖家。

我还需要采用什么分区逻辑?

先感谢您!

0 投票
1 回答
105 浏览

amazon-dynamodb - 处理 dynamodb 中的 I/O 容量

我们正在使用 dynogels 库来查询 dynamoDB 表。不幸的是,由于 dynamoDB 没有分页功能,对于特定需求,我们正在通过 loadAll 从表中检索所有数据以获取表的所有项目(18K 项目),并且由于超出 I /O 读取容量。

除了这个检索表所有内容的查询外,我们只有非常小的表读取使用量。我们还尝试动态更新 I/O 统一性,但我们限制为每小时 4 次更改。

您能提出解决方案吗?你知道如何在 dynamodB 中使用分页吗?是否可以将 DAX 用作本地 dynamoDB 缓存?

谢谢

0 投票
1 回答
2308 浏览

node.js - 如何使用 node.js 获取 dynamoDB 中项目的最大值?

我正在尝试从id项中获取最大值。我正在使用 ScanIndexForward:false 它返回id值的 desc 顺序,现在它没有按预期工作,它从表中给出相同的插入顺序。

请在下面查看我的代码,如果需要任何更改,请提出建议。

谢谢,