说,发电机数据库有格式数据: -
{
"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.因此,看起来像一小组数据。
请告诉我你的意见。
答案 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'
}
};