具有嵌套属性的DyanamoDB SCAN

时间:2017-04-02 23:50:48

标签: amazon-dynamodb

在给定的示例中,我可以通过'order.shortCode'扫描DynamoDB。控制台指示我不能用点表示法,我找不到任何文档。

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

1 个答案:

答案 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) {
});

以下是文档的链接,解释了这一点:

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