在给定的示例中,我可以通过'order.shortCode'扫描DynamoDB。控制台指示我不能用点表示法,我找不到任何文档。
{
"key2": "cj11b1ygp0000jcgubpe5mso3",
"order": {
"amount": 74.22,
"dateCreated": "2017-04-02T19:15:33-04:00",
"orderNumber": "cj11b1ygp0000jcgubpe5mso3",
"shortCode": "SJLLDE"
},
"skey2": "SJLLDE"
}
答案 0 :(得分:3)
要通过嵌套属性进行扫描,您应该使用ExpressionAttributeNames
参数将每个路径组件(即order和shortCode)分别传递到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) {
});
以下是文档的链接,解释了这一点: