Indexing 如果DynamoDb返回的数据较少,是否需要索引
例如,dynamo db具有以下格式的数据:-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>",
{
"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'
}
};