首页 > 解决方案 > DynamoDB 仅检索属性值

问题描述

我有一个表,其中 userId 作为 PK 和一个名为 userToken 的属性。

我编写了一个 batchGet() 函数来返回特定 userIds 的所有 userTokens,但是它返回它是这样的:

[{用户令牌:'1234'},{用户令牌:'5678'}]

我希望它只返回值,因为我已经知道属性名称是什么:['1234', '5678']

我该怎么做呢?

        const params = {
        RequestItems: {
            UserTokens: {
                Keys: userIds,
                AttributesToGet: [
                    'userToken'
                ]
        }
        }
    };

    db.batchGet(params, function(err, data) {
        if (err) {
            console.log("Error", err);
        } else {
            console.log(data.Responses);
            sendNotifications(data.Responses);
        }
    });

标签: amazon-web-servicesattributesamazon-dynamodb

解决方案


DynamoDB 始终返回属性名称和值。
您可以在客户端轻松过滤它。

val = [  { userToken: '1234' }, { userToken: '5678' } ];
reducer = (accumulator, currentVal) => { 
    accumulator.push(currentVal.userToken);
    return accumulator;
 }

console.log(val.reduce(reducer, []));

推荐阅读