问题标签 [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 投票
1 回答
72 浏览

amazon-web-services - 如何按属性对 DynamoDB 行进行排序

我有下表:

每次有人购买商品时,我都想增加Purchases. 然后我想查询表以获取购买最多的商品(ItemUUID按 DESC 排序Purchases

我想我可以创建一个主键,并使用排序键ItemUUID创建一个全局二级索引。然后查询 GSI where ,将排序键留空,降序排序。TypePurchasesType = book

这是行不通的。DynamoDB 是否可以使用我的用例?

0 投票
1 回答
456 浏览

amazon-dynamodb - DynamoDB 查询过滤器列表计数

我对 DynamoDB 很陌生,有一些问题,我有一张包含一些产品的表格,其中每个产品可以有多个价格。

我需要一种方法以更多的单一价格获得所有产品,我该怎么做?

示例数据:

0 投票
1 回答
2910 浏览

amazon-dynamodb - 我们可以避免在 dynamodb 中进行扫描吗

我是 noSQL 数据建模的新手,所以如果我的问题是微不足道的,请原谅我。我在 dynamodb 中找到的一个建议是在查询时始终提供“PartitionId”,否则它将扫描整个表。但是在某些情况下,我们需要列出我们的项目,例如在电子商务网站的情况下,我们需要在列表页面上列出我们的产品(带有分页)。

我们应该如何通过避免扫描或有效地使用来执行此列表?

0 投票
1 回答
308 浏览

amazon-dynamodb - DynamoDB,更新多个嵌套地图属性

我有一个顶级属性,我想同时更新多个嵌套属性。我传入的参数是:

它在更新单个属性时有效,但是当我输入 2 时,我收到一条错误消息:

更新表达式中提供的文档路径对更新无效

非常感谢任何帮助。

谢谢

0 投票
0 回答
77 浏览

nosql - 即使我增加预置的 RCU,Dynamodb 表查询时间也不会减少

我有一个具有以下属性的 dynamodb 表用户 -

我们的查询是 - 在 searchable=true 和 country=xyz 的年龄范围之间查找用户 目前我们查询使用年龄范围计算的每个birthYear,并在最后合并结果。

我们已经配置了 RCU 500,尽管我们将 RCU 增加到 1000,但对某些查询的负载测试响应时间不会少于 1 秒。

0 投票
1 回答
779 浏览

java - 扫描 DynamoDB 表未返回数据

我正在尝试从没有任何索引的 dynamodb 数据库表中扫描失败的令牌计数。它从数据库返回 0。我怀疑它没有扫描完整的数据库。下面是我的方法和dynamoDBClient工作条件之一,它有连接细节。我在这里只发布扫描查询部分

这是回应。

我的要求有什么问题?

0 投票
1 回答
290 浏览

amazon-web-services - 用于查询多值属性的 DynamoDB 表/索引架构设计

我正在构建一个最终将为大量(数百万)用户提供服务的 DynamoDB 应用程序。目前,该应用的项目架构很简单:

当新用户注册时,或者如果用户想通过电子邮件地址查找其他用户,我们将需要查找用户 byemail而不是 by userId。使用当前模式很容易:只需使用全局二级索引email作为分区键。

但是我们希望为每个用户启用多个电子邮件地址,并且 DynamoDBQuery操作不支持List-typed KeyConditionExpression。因此,我正在权衡几个选项,以避免Scan每次用户注册或希望通过电子邮件地址找到另一个用户时进行昂贵的操作。

以下是我计划更改的内容,以便为每个用户启用额外的电子邮件。这是一个好方法吗?有更好的选择吗?

  1. 添加一个排序键列(例如itemTypeAndIndex)以允许每个userId.

      { userId: "08074c7e0c0a4453b3c723685021d0b6", // partition key itemTypeAndIndex: "main", // sort key email: "foo@foo.com", ... other attributes ... }

  1. 如果用户添加了第二封、第三封等电子邮件,则为每封电子邮件添加一个新项目,如下所示:

      { userId: "08074c7e0c0a4453b3c723685021d0b6", // partition key itemTypeAndIndex: "Email-2", // sort key email: "bar@bar.com" // no more attributes }

  1. 相同的全局二级索引(email作为分区键)仍可用于查找主要和非主要电子邮件地址。

  2. 如果用户想要更改他们的主要电子邮件地址,我们将交换email“主要”和“非主要”项目中的值。(现在 DynamoDB 支持事务,这样做会比以前更安全!)

  3. 如果我们需要删除一个用户,我们必须删除该用户的所有项目userId。如果我们需要合并两个用户,那么我们必须为此合并所有项目userId

  4. 相同的方法(具有相同userId但不同排序键的新项目)可用于其他需要Query-able的 1-user-has-many-values 数据

这是一个好方法吗?有没有更好的办法?

0 投票
0 回答
38 浏览

node.js - dynamo db 从内部数组中获取数据

这是我在 dynamo db 中的数据:

我想获取所有包含 "code": "ALL" 的报价

我尝试了几件事,并在 stackoverflow 中经历了几个解决方案。

我试过的代码:

这将返回一个空数组。

0 投票
1 回答
404 浏览

amazon-web-services - DynamoDB:查询架构中不存在的列

我的 DynamoDB 中有下表

以 id 为主键。我没有定义任何排序键。

现在我需要根据 userId 检索结果 .. 简而言之,我需要包含特定 userId 的表中的所有记录

当我运行这个时,我得到一个错误

有人可以让我知道如何查询包含 userId '123' 的所有记录吗?

0 投票
0 回答
343 浏览

amazon-dynamodb - DynamoDB:集合嵌套对象的过滤器表达式

给定下面的数据结构,我想编写一个过滤表达式来查询与给定表达式匹配的所有项目(items.name = :param)

我只是尝试过(但它不起作用):

当我尝试时(当然它可以工作,因为我在集合中指定了索引):

如何轻松获取在 nestedValues 集合中具有名称为“item2”的项目的所有数据库项目?

先感谢您

(我也在 AWS 论坛上问过:https ://forums.aws.amazon.com/thread.jspa?messageID=881391狯 )