node.js - 如何通过 aws-cli 创建具有嵌套属性定义的 dynamodb 模式?

标签 node.js amazon-dynamodb aws-sdk aws-cli

我一直在使用命令aws dynamodb create-table --cli-input-json创建本地 dynamodb 表以在我的本地机器上进行测试。

我可以创建简单的表,但不能创建更复杂的真实世界的表。我查看了 AWS 文档,但它缺少对嵌套 AttributeDefinitions 的解释,或者我找不到它。
这是一个有效的简单示例(用于通过 AWS CLI 创建):

{
  "TableName": "fruitsTable",
  "KeySchema": [
    {
      "AttributeName": "fruitId",
      "KeyType": "HASH"
    }
  ],
  "AttributeDefinitions": [
    {
      "AttributeName": "fruitId",
      "AttributeType": "S"
    }
  ],
  "ProvisionedThroughput": {
    "ReadCapacityUnits": 5,
    "WriteCapacityUnits": 5
  }
}

这很好用。 aws dynamodb create-table --cli-input-json file:///Users/you/subfile/server/config/tables/fruits.json --endpoint-url http://localhost:8000
但是,我希望看到一个创建更复杂对象的示例。什么模式适用于此?
{
  "ComplexFruit" : [
    {
      "complexFruitId": "redbanana-fromGroceryStore"
      "name" : "redBanana", 
      "notes": "this one is red",
      "count" : {
        "ripe" : 5,
        "total": 10
       },
      "stores" : [ 
          {"storeName" : "Exito"}
       ]
     }
   ]
}

我对如何创建嵌套 AttributeDefinition 感到困惑无需大量猜测或挖掘代码(如果 dynamodb 是开源的?)。
有人知道吗?这显然是一个人为的例子,但它将演示如何创建嵌套模式。

最佳答案

您只需要指定 AttributeDefinitions对于将成为表主键的一部分或索引键的一部分的属性。 Dynamo 主要是无模式的(关键定义除外)。它不关心您要存储的任何其他属性 - 无需对任何内容进行建模。

关于node.js - 如何通过 aws-cli 创建具有嵌套属性定义的 dynamodb 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54151859/

相关文章:

mysql - 使用 node.js 进行长轮询以获取数据库更新

node.js - 准确跟踪#open sockets via redis

objective-c - DynamoDB 上的条件更新项

node.js - AWS SDK v3 无法从配置文件获取区域

google-chrome - 最新的 Chrome (46.0.2490.7) 无法通过 https CORS 从 S3 存储桶加载字体

node.js - 错误 :/lib/x86_64-linux-gnu/libm. so.6:版本 `GLIBC_2.27'

node.js - meteor 黑客 :npm not working ( npm modules in Meteor)

php - 与 AWS DynamoDB 通信时的整秒延迟

java - 如何将 Project Reactor 的调度程序与基于 Executor 的库一起使用?

javascript - AWS Dynamodb 查询 - 从有条件的表中获取项目