Indexing 如果DynamoDb返回的数据较少,是否需要索引

Indexing 如果DynamoDb返回的数据较少,是否需要索引,indexing,amazon-dynamodb,Indexing,Amazon Dynamodb,例如,dynamo db具有以下格式的数据:- { "id":"<id>", "field-1":"<field-1-value>", "field-2":"<field-2-value>", "field-3":"<field-3-value>", "field-4":"<field-4-value>", "metadata":{ "subfield-1":"<subfield-1-value>",

例如,dynamo db具有以下格式的数据:-

{
"id":"<id>", 
"field-1":"<field-1-value>",
"field-2":"<field-2-value>",
"field-3":"<field-3-value>",
"field-4":"<field-4-value>",
"metadata":{
        "subfield-1":"<subfield-1-value>",
        "subfield-2":"<subfield-2-value>"
        }
}
{
“id”:“,
“字段-1”:“,
“字段2”:“字段2”,
“字段-3”:“,
“字段-4”:“,
“元数据”:{
“子字段-1”:“,
“子字段-2”:”
}
}
所以,我在id列上有一个分区键,在字段1上有一个排序键。现在,比方说,我有一个要求,对于相同的id,如果我们想要在子字段-1值上搜索功能,那么可以在Dynamo Db中轻松完成,而无需创建任何索引。每个id的最大行数为70。看起来像是一小部分数据


请让我知道您的看法。

是的,这可以在没有索引的情况下实现。您可以使用
FilterExpression
来过滤数据,即
元数据。子字段-1

示例:

var params = {
    TableName : 'yourTableName',
    KeyConditionExpression : 'id = :idval', 
    FilterExpression : '#metadata = :subField1Val',
     ExpressionAttributeNames : {
        '#metadata' : 'metadata.subfield-1'
    },
    ExpressionAttributeValues : {
        ':idval' : '7',
        'subField1Val' : 'somevalue'

    }
};