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

使用DynamoDBMapper进行DynamoDB查询

胡星汉
2023-03-14

假设我有一个DynamoDB表:

UserId (hash): S
BookName (range): S
BorrowedTime: S
ReturnedTime: S

UserId是主键(hash),我需要将BookName设置为排序键(range),因为添加到数据库中的另一项用相同的UserId覆盖了前面的项。

共有1个答案

韩高峯
2023-03-14

是的,您可以使用BrowwedTime和ReturrdTime创建GSI,或者您可以使用scan代替查询,如果使用scan,您不需要创建GSI,但是scan操作扫描整个数据库,因此在大数据库或频繁使用时并不推荐使用。

 类似资料:
  • 使用DynamoDB,没有简单的方法可以对列执行索引范围查询。主键、本地二级索引和全局二级索引都需要分区键来进行范围查询。 例如,假设我有一个带有数字分数属性的高分表。使用索引范围查询无法获得前10名或前25至50名 那么,执行这项极其常见的任务的惯用方式或首选方式是什么呢? > 接受表格扫描。 使用静态分区键并利用分区查询。 使用固定数量的静态分区键并使用多个分区查询。

  • 从API文档来看,dynamo db确实支持扫描和查询操作的分页。这里的关键是将当前请求的设置为上一个请求的的值,以获得下一组(逻辑页面)结果。 我试图实现同样的功能,但我使用的是,它似乎有很多优点,比如与数据模型紧密耦合。因此,如果我想做上述工作,我假设我会做如下工作: 我希望我的上述理解是正确的分页使用DynamoDBMapper。其次,我怎么知道我已经达到了结果的终点。如果我使用以下api,

  • 我正在使用DynamoDB,并通过将JSON传递给它来存储文档,所有这些都在Java中使用DynamoDBMapper类。 将数据放入表中已经足够简单了。还可以查询表中是否有可用的Hash或Range值。 但是我想用JSON文档对一个值进行扫描(我猜是这样)。我一直在四处寻找例子,但我找不到任何例子,或者至少在使用DynamoDBMapper方法做事时找不到。 那么我认为这是可以做到的,对吗?如果

  • 我正在使用散列键查询DynamoDB表。表中的每个记录都由散列键和范围键唯一标识 当结果集大于1MB时,如何检索其余的。我找不到任何方法来获取文档中提到的。

  • 我对DynamoDB非常陌生(一般没有Sql),在理解如何形成一个简单的查询时遇到了一些困难。。 我想在SQL中执行一个简单的选择,但似乎无法完成。 我的表定义基本上是: 表名snsNotiations主分区密钥接收者ID(编号) 它遵循一些属性(如readAt)。 我要执行的查询是: 我甚至可以在AWS UI上执行此查询:截图 我的lambda函数使用以下内容: 但我得到以下错误: 无法查询。错

  • 我正在寻找优化Dynamodb操作,即删除扫描和使用查询快速获取数据。 表数据: 我必须使用项目名称进行项目搜索。现在,我们扫描整张桌子。 然后,如果itemOwners包含搜索用户的用户ID,我们将过滤items结果。 我想知道是否有更好的方法使用dynamodb进行搜索查询?