2017-06-06 89 views
0

少說數據的情況下,需要索引,發電機分貝具有格式的數據: -我需要通過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列和分區鍵在現場排序鍵1說。現在,我要求對於相同的ID,如果我們希望在子字段1值上具有搜索能力,那麼可以在Dynamo Db中輕鬆完成而無需創建任何索引。最大。每個ID的行數爲70.因此,看起來像一小組數據。

請讓我知道您的意見。

回答

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' 

    } 
};