在JSON对象的子字段上进行DynamoDB查询

Nir*_*iru 6 java json amazon-dynamodb

是否可以在dynamoDB表中搜索json对象的子字段?

我的桌子:

Item: "item name",  
Location: {...},  
ItemInformation :  
{  
   ItemName: "itemName",  
   ProductLine: {  
      Brand: "Razer",  
      ManufacturerSource: "Razer"  
}
Run Code Online (Sandbox Code Playgroud)

最初在这个表中ItemInformation将是一个键并搜索一个对象,我们将为项目信息构造json,然后用json字符串作为键进行查询.现在我们需要实现该对象的子字段搜索,这可以每次包含不同的字段,即isDigital:"true".

我在问题中注意到: DynamoDB高级扫描 - JAVA

答案似乎是否定的,我将不得不将这些字段分开.但我很好奇PHP库为什么以及如何在dynamoDB中查询JSON对象上的子字段.那么将列作为单独的字段存储然后在所有字段上添加索引真的没有更好的解决方案吗?

Nir*_*iru 3

在查看文档后,按照我最初的意图实现搜索字段是不可行的。问题是,虽然值是 JSON,但它们存储为字符串文字,因此我必须进行重构才能开始存储为 JSON 对象。此外,我无法添加列和索引,因为搜索可以在任意数量的字段上进行操作,并且不同的项目可以有不同的字段,即项目可以有品牌、电池信息、名称。鉴于要求是这些子字段中的任何一个都应该是可搜索的,最好在 Cloud Search 或 ElasticSearch 中执行此操作,我可以在其中对对象列中的任意字段和值进行索引和搜索。

由于这是一个 DynamoDB 表,我将使用 CloudSearch,因为它提供了更简单的索引选项和数据集成。