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

时间:2017-06-06 00:00:45

标签: indexing amazon-dynamodb

说,发电机数据库有格式数据: -

{
"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列上有一个分区键,在field-1上有一个排序键。现在,比方说,我要求对于相同的id,如果我们想要subfield-1值的搜索功能,那么可以在Dynamo Db中轻松完成而不创建任何索引。最大每个id所在的行数为70.因此,看起来像一小组数据。

请告诉我你的意见。

1 个答案:

答案 0 :(得分:1)

是的,这可以在没有索引的情况下实现。您可以使用FilterExpression过滤数据,即metadata.subfield-1

示例:

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

    }
};