带有嵌套属性的 DyanamoDB SCAN

Rob*_*ers 3 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"
}
Run Code Online (Sandbox Code Playgroud)

xtx*_*xtx 8

要通过嵌套属性进行扫描,您应该使用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) {
});
Run Code Online (Sandbox Code Playgroud)

这是解释此问题的文档链接:

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