Amazon dynamodb DynamoDB扫描节点上对象的属性
我目前正在使用以下方法获取数据库中的所有条目:Amazon dynamodb DynamoDB扫描节点上对象的属性,amazon-dynamodb,dynamodb-queries,Amazon Dynamodb,Dynamodb Queries,我目前正在使用以下方法获取数据库中的所有条目: const params = { TableName: process.env.AWS_DYNAMODB_TABLE, Select: "SPECIFIC_ATTRIBUTES", AttributesToGet: ["SessionValue"]
const params = {
TableName: process.env.AWS_DYNAMODB_TABLE,
Select: "SPECIFIC_ATTRIBUTES",
AttributesToGet: ["SessionValue"]
};
dynamoClient.scan(params, function(err, data) {
console.log("GetItem succeeded:", JSON.stringify(data, null, 2));
});
问题是我不需要SessionValue中的所有内容,它是一个非常大的对象。相反,我想做如下事情:
const params = {
TableName: process.env.AWS_DYNAMODB_TABLE,
Select: "SPECIFIC_ATTRIBUTES",
AttributesToGet: ["SessionValue.wallet.keys"]
};
但是,运行上述操作不会返回任何结果。使用nodejs上的DynamoDb是否可以实现这一点?您可以使用
var AWS=需要“AWS-sdk”;
var dynamoClient=new AWS.DynamoDB.DocumentClient;
常量参数={
表名:process.env.AWS_DYNAMODB_表,
表达式属性名称:{
S:会话值,
w:钱包,
k:钥匙,
},
选择:特定的属性,
ProjectionExpression:S.w.k,
};
dynamoClient.scanparams、functionerr、data{
如果出错{
console.logerr,err.stack;
}否则{
console.logGetItem成功:,JSON.stringifydata,null,2;
}
};
可能需要注意的是,响应包含完整的对象信封,因此如果希望扫描调用仅返回嵌套项,则必须在成功回调中打开它。下面是模拟表的响应示例
GetItem succeeded: {
"Items": [
{
"SessionValue": {
"wallet": {
"keys": [
"brad001",
"brad002"
]
}
}
},
{
"SessionValue": {
"wallet": {
"keys": [
"foo001",
"foo002"
]
}
}
}
],
"Count": 2,
"ScannedCount": 2
}
你可以用一只手来做这件事
var AWS=需要“AWS-sdk”;
var dynamoClient=new AWS.DynamoDB.DocumentClient;
常量参数={
表名:process.env.AWS_DYNAMODB_表,
表达式属性名称:{
S:会话值,
w:钱包,
k:钥匙,
},
选择:特定的属性,
ProjectionExpression:S.w.k,
};
dynamoClient.scanparams、functionerr、data{
如果出错{
console.logerr,err.stack;
}否则{
console.logGetItem成功:,JSON.stringifydata,null,2;
}
};
可能需要注意的是,响应包含完整的对象信封,因此如果希望扫描调用仅返回嵌套项,则必须在成功回调中打开它。下面是模拟表的响应示例
GetItem succeeded: {
"Items": [
{
"SessionValue": {
"wallet": {
"keys": [
"brad001",
"brad002"
]
}
}
},
{
"SessionValue": {
"wallet": {
"keys": [
"foo001",
"foo002"
]
}
}
}
],
"Count": 2,
"ScannedCount": 2
}