繁体   English   中英

如何在 Dynamodb 扫描中使用 reduce 查询

[英]how to use reduce with query on Dynamodb scan

我正在学习 DynamoDB,并且很难理解在 DynamoDB 查询提供结果后在何处执行数据缩减以及在代码中的何处执行 go。

我想总结一下running_time_secs

async function scanForResults () {
    try {
        var params = {
            TableName: "Movies",
            ProjectionExpression: "#yr, title, info.rating, info.running_time_secs, info.genres",
            FilterExpression: "#yr between :start_yr and :end_yr",
            ExpressionAttributeNames: {
                "#yr": "year",
            },
            ExpressionAttributeValues: {
                ":start_yr": 1950,
                ":end_yr": 1985,
            }
        };

        var result = await docClient.scan(params).promise()

        console.log(JSON.stringify(result))

        //const total = result.reduce((sum, result) => sum + result.info.running_time_secs, 0);

    } catch (error) {
        console.error(error);
    }
}

scanForResults();

谢谢你的帮助。

已编辑

也许您可以在解决结果后发布结果的实际值。 最好了解结果值的实际结构,以便更好地了解应该如何处理它。 您可以站点文档以供进一步参考。 它实际上真的很有帮助。

 var result = [{ "title": "Piranha", "year": 1978, "info": { "rating": 5.8, "genres": ["Comedy", "Horror", "Sci-Fi"], "running_time_secs": 5640 } }] var total = result.reduce((sum, result) => sum + result.info.running_time_secs, 0); console.log(total); var result2 = [{ "title": "Piranha", "year": 1978, "info": { "rating": 5.8, "genres": ["Comedy", "Horror", "Sci-Fi"], "running_time_secs": 5640 } }, { "title": "Piranha2", "year": 1980, "info": { "rating": 5.8, "genres": ["Comedy", "Horror", "Sci-Fi"], "running_time_secs": 5640 } } ] var total2 = result2.reduce((sum, result) => sum + result.info.running_time_secs, 0); console.log(total2); var resultObj = { "title": "Piranha", "year": 1978, "info": { "rating": 5.8, "genres": ["Comedy", "Horror", "Sci-Fi"], "running_time_secs": 5640 } } var totalObj = resultObj.reduce((sum, result) => sum + result.info.running_time_secs, 0); console.log(totalObj);

我认为根据您收到的错误,结果可能不是数组。 您可以参考我发布的代码片段。 我使用了您的代码并刚刚创建了结果数组来模拟您从扫描 function 中获得的结果。 正如您在第 3 次看到的那样,减少了 resultObj 上使用的 function,我收到了您收到的响应错误。 reduce是一种数组方法,将其用于 object 会导致此类错误,因为 object 没有实现此方法。 因此,我认为您得到的结果不是数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM