我有一个 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。
您正在使用简单的文档客户端,它有一些奇怪的编组配置。
尝试使用完整文档客户端并让我知道效果如何:
import { DynamoDBDocumentClient } from "@aws-sdk/lib-dynamodb";