2017-04-02 43 views
1

在給定示例中,我可以通過'order.shortCode'掃描DynamoDB嗎?控制檯顯示我不能使用點符號,並且我找不到任何文檔。帶有嵌套屬性的DyanamoDB掃描

{  
    "key2": "cj11b1ygp0000jcgubpe5mso3", 
    "order": { 
    "amount": 74.22, 
    "dateCreated": "2017-04-02T19:15:33-04:00", 
    "orderNumber": "cj11b1ygp0000jcgubpe5mso3", 
    "shortCode": "SJLLDE" 
    }, 
    "skey2": "SJLLDE" 
} 

回答

1

爲了通過嵌套屬性掃描,應使用ExpressionAttributeNames參數分別通過每個路徑分量(即順序和短碼)成FilterExpression下面等所示:

var params = { 
    TableName: 'YOUR_TABLE_NAME', 
    FilterExpression: "#order.#shortCode = :shortCodeValue", 
    ExpressionAttributeNames: { 
     '#order': 'order', 
     "#shortCode": "shortCode" 
    }, 
    ExpressionAttributeValues: { 
     ':shortCodeValue': 'SJLLDE' 
    } 
}; 

dynamodbDoc.scan(params, function(err, data) { 
}); 

下面是文檔的鏈接解釋:

http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.ExpressionAttributeNames.html#Expressions.ExpressionAttributeNames.NestedAttributes