Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于在dynamodb中存储json的格式_Json_Amazon Web Services_Amazon Dynamodb - Fatal编程技术网

用于在dynamodb中存储json的格式

用于在dynamodb中存储json的格式,json,amazon-web-services,amazon-dynamodb,Json,Amazon Web Services,Amazon Dynamodb,我有一个JSON文件,看起来像这样 { "alliance":{ "name_part_1":[ "Ab", "Aen", "Zancl" ], "name_part_2":[ "aca", "acia", "ythrae", "ytos" ], "name_part_3":[ "Alliance", "Bond" ] } } 我想

我有一个JSON文件,看起来像这样

{
  "alliance":{
    "name_part_1":[
      "Ab",
      "Aen",
      "Zancl"
    ],
    "name_part_2":[
      "aca",
      "acia",
      "ythrae",
      "ytos"
    ],
    "name_part_3":[
      "Alliance",
      "Bond"
    ]
  }
}
我想把它存储在
dynamoDB
中。 问题是,我想要一个生成器,它可以从
name\u part\u 1
name\u part\u 2
等字段(name\u part\u x的数量是无限的,每个部分的项目数量可能有几百个)中提取随机元素,并将它们连接起来创建一个完整的单词。像

name_part_1[1] + name_part_2[10] + name_part[3]
我的问题是,我应该使用什么格式来有效地做到这一点?或者不应该使用NoSQL来实现这一点?我应该重构JSON来实现类似的功能吗

{
    "name": "alliance",
    "parts": [ "name_part_1", "name_part_2", "name_part_3" ],
    "values": [
        { "name_part_1" : [ "Ab ... ] }, { "name_part_2": [ "aca" ... ] }  
    ]
}

这是DynamoDB的完美用例

你可以这样构造

NameParts (Table)
    namepart (partition key)
    range (hash key)
namepart:name\u part\u 1范围:0值:“Ab”

这样,每个name_部件都有自己的范围和可伸缩性。你可以将其扩展到数千甚至数百万

您可以从您选择的sdk执行批处理getitem并加入这些值

REST API参考:


希望有帮助。

您可以将整个文档原样放在DynamoDB中,然后使用它访问所需的元素

文档路径

在表达式中,您使用文档路径来告诉DynamoDB在何处运行 找到一个属性。对于顶级属性,文档路径为 只需输入属性名即可。对于嵌套属性,可以构造 使用取消引用运算符的文档路径

以下是文档路径的一些示例。(请参阅本项目。) 如指定项目属性中所示。)

顶级标量属性:ProductDescription顶级列表 属性(这将返回整个列表,而不仅仅是一些 元素。)RelatedItems RelatedItems列表中的第三个元素。 (请记住,列表元素是以零为基础的。)RelatedItems[2] 产品的前视图图片。图片。FrontView所有的 五星级评论。ProductReviews.FiveStar五星级酒店中的第一家 评论。ProductReviews.FiveStar[0]注意 文档路径是32。因此,解引用运算符的数量 在路径中,不能超过此限制


请注意,每个文档都需要一个唯一的分区键。

但是如果另一个
名称
(armor而不是alliance)具有
名称(part)1
,该如何处理呢?