使用S3选择数据的Alexa技能

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

我的S3存储桶中有一个JSON对象,我想使用S3 select查询此JSON数据,检索所需的字段,然后将结果连接成字符串,然后将其返回给其他函数,Alexa会说出此字符串。

我在S3存储桶中的JSON数据如下所示。

{
    person = [
    {
            "Id": "valid",
            "Name": "Anshu",
            "Address": "Templestowe",
            "Car": "Jeep"
    },
    {
            "Id": "valid",
            "Name": "Ben Mostafa",
            "Address": "Las Vegas",
            "Car": "Mustang"
    },
    {
                    "Id": "not valid",
                    "Name": "Rohan Wood",
                    "Address": "Wooddon",
                    "Car": "VW"
    },
    {
                    "Id": "not valid",
                    "Name": "John Cena",
                    "Address": "Wooddon",
                    "Car": "VW"
    },
    {
                    "Id": "valid",
                    "Name": "Ray Hope",
                    "Address": "Wooddon",
                    "Car": "VW"
    }
    ]
}

现在,我希望能够使用S3 select从我的lambda函数查询此数据。

我正在将NODE JS用于我的Alexa技能。

我想要所有ID为“有效”的人的名字。

运行SQL查询时:

select s.name from s3object[*].person[*] s where s.name is not missing AND s.id = 'valid'

我以以下形式获取数据:

[
    {
        "name": "Anshu"
    },
    {
        "name": "Ben Mostafa"
    },
    {
        "name": "Ray Hope"
    }
]

我想知道的是如何接受上述结果,然后使用lambda函数按如下所示创建字符串?

str = "Anshu .Ben Mostafa. Ray Hope"

所以,对于上述查询,我​​希望我的结果是字符串变量str = "Anshu .Ben Mostafa. Ray Hope"

我在这里阅读了有关使用诺言从查询中返回结果的信息,但是我不确定如何继续进行。

link

[此外,我阅读了AWS文档,但无法处理结果。你能帮我吗?

javascript amazon-s3 dom-events es6-promise alexa
1个回答
0
投票
我假设您可以将结果存储在变量中:

let result = [ { "name": "Anshu" }, { "name": "Ben Mostafa" }, { "name": "Ray Hope" } ] const str = result.map(r => r.name).join(". ").concat("."); // "Anshu. Ben Mostafa. Ray Hope."

© www.soinside.com 2019 - 2024. All rights reserved.