带有DynamoDB.DocumentElement和Node.JS的GSI

带有DynamoDB.DocumentElement和Node.JS的GSI,node.js,amazon-dynamodb,dynamodb-queries,aws-sdk-nodejs,Node.js,Amazon Dynamodb,Dynamodb Queries,Aws Sdk Nodejs,我有一个关于GSI的问题。对于使用DynamoDB的人来说,这个问题相当简单:) 目前,我正在通过创建博客学习AWS/DynamoDB。所以每个帖子都有一个类别。我有一个大问题,如果我想得到所有得到一个特殊类别的帖子。现在我使用的是扫描,包含一个过滤器 编辑: 要创建模型,我使用“dynamodb工具箱” 我听说我可以申请GSI并通过GSI搜索得到所有类别的帖子。最大的问题是。。。我不知道如何创建GSI,如何在query width DocumentClient和node.js中使用它 谢谢你的

我有一个关于GSI的问题。对于使用DynamoDB的人来说,这个问题相当简单:)

目前,我正在通过创建博客学习AWS/DynamoDB。所以每个帖子都有一个类别。我有一个大问题,如果我想得到所有得到一个特殊类别的帖子。现在我使用的是扫描,包含一个过滤器

编辑: 要创建模型,我使用“dynamodb工具箱”

我听说我可以申请GSI并通过GSI搜索得到所有类别的帖子。最大的问题是。。。我不知道如何创建GSI,如何在query width DocumentClient和node.js中使用它

谢谢你的帮助

我不知道如何创建GSI

更具体地说,这是可用的

我有一个大问题,如果我想得到所有得到一个特殊类别的帖子。现在我使用的是扫描,包含一个过滤器

在这种情况下,根据当前的数据模型,您需要配置一个GSI,其中
category
是分区键,
id
是排序键,其中您需要将主键配置为PK和SK的组合主键,如前所述

这将允许您在执行查询时点击一个分区,因为您将类别作为分区键

如何在query width DocumentClient和node.js中使用它


我建议您首先解决这些问题,并使其独立工作,而不必担心编程语言的限制。一旦你掌握了这一点,你就可以独立地担心编程语言的挑战。

你的DynamoDB数据模型目前是什么样子的?`schema:{pk:{type:'string',alias:'type',default:'POST'},sk:{type:'string',alias:'id'},title:{type:'string'},category:{type:'string'},description:{type:'string'},}这是dynamo工具箱中的模型,所以每个帖子都有这些字段。谢谢你的帮助!这对我真的很有帮助。我想问的是-是否可以通过代码创建此索引?或者我应该直接转到AWS-CLI中的DynamoDB表并自己创建它吗?“是否可以通过代码创建此索引”:您可以,您可以在AWS控制台中执行的任何操作,您可以通过AWS CLI和infra as代码工具(例如terraform)在自己的代码中执行这些操作。GSI创建是您需要根据需要执行一次的操作。因此,我会将其从应用程序中取出,并在其他地方运行。