lib-dynamodb 不显示嵌套列表

问题描述 投票:0回答:1

我有一个 DynamoDB 表,其中有一个项目如下:

{
    "Item": {
        "myPrimaryKey": {
            "S": "config"
        },
        "mySecondaryKey": {
            "S": "sports"
        },
        "configValues": {
            "SS": [
                "baseball",
                "basketball",
                "football"
            ]
        }
    }
}

我正在根据 npm 存储库中提供的文档运行以下代码:

const { DynamoDB } = require('@aws-sdk/client-dynamodb');
const client = new DynamoDB({ region: 'us-east-1' });

const { DynamoDBDocument, GetCommand } = require('@aws-sdk/lib-dynamodb');
const ddbDocClient = DynamoDBDocument.from(client);

const params = {
  'TableName': 'mySportBookTable',
  'Key': {
    'myPrimaryKey': 'config',
    'mySecondaryKey': 'sports',
  },
};

const data = await ddbDocClient.send(new GetCommand(params));
console.log('sendDocClientCommand -- Received data: ', JSON.stringify(data));

检查

data
时,嵌套属性
configValues
表示为
{}
并且为空。但是,当我运行等效的 CLI 命令时,数据会正确显示。

$ aws dynamodb get-item \
    --table-name "mySportBookTable" \
    --key '{"myPrimaryKey":{"S":"config"},"mySecondaryKey":{"S":"sports"}}'
{
    "Item": {
        "myPrimaryKey": {
            "S": "config"
        },
        "mySecondaryKey": {
            "S": "sports"
        },
        "configValues": {
            "SS": [
                "baseball",
                "basketball",
                "football"
            ]
        }
    }
}

这可能是一个简单的配置选项,但我似乎找不到任何扩展嵌套列表的文档。事实上,我遇到的所有文档都表明,除非提供

ProjectionAttributes
,否则所有值都会返回。

我使用的是3.454.0版本的SDK。

amazon-dynamodb aws-sdk aws-sdk-js
1个回答
0
投票

您正在使用简单的文档客户端,它有一些奇怪的编组配置。

尝试使用完整文档客户端并让我知道效果如何:

import { DynamoDBDocumentClient } from "@aws-sdk/lib-dynamodb";
© www.soinside.com 2019 - 2024. All rights reserved.