【问题标题】:DynamoDB GetBatch operation with nested query具有嵌套查询的 DynamoDB GetBatch 操作
【发布时间】:2021-02-28 17:05:21
【问题描述】:

所以我的情况是我在 AWS DynamoDB 表用户中有以下 JSON 数据:

[{
        "name": "data1",
        "addresses": [{
                "city": "Mumbai",
                "state": "Maharashtra"
            },
            {
                "city": "Chennai",
                "state": "Tamil Nadu"
            }
        ]
    },
    {
        "name": "data2",
        "addresses": [{
            "city": "Amritsar",
            "state": "Punjab"
        }]
    }
]

现在我需要获取所有拥有孟买和阿姆利则等城市的用户。那么我应该如何创建一个查询来获得这个结果。

我尝试使用嵌套查询进行扫描,并使用 GetBatch 按多个值进行搜索。但是一起做这件事并没有发生。有人可以说明这个问题吗?我正在尝试在 AWS AppSync 上执行此操作。

谢谢!!!

【问题讨论】:

    标签: amazon-dynamodb aws-appsync


    【解决方案1】:

    很遗憾,DynamoDB 不支持以这种方式查询嵌套属性。

    您通过将地址存储在一个复杂的属性中,对用户和地址之间的一对多关系进行了建模。这是建模一对多关系的常见模式。这种模式的缺点是您不能支持任何通过地址获取用户的访问模式。

    相反,您需要以支持按地址获取用户的方式对一对多关系进行建模。理想情况下,地址会内置到主键中,这样您就可以执行快速的query 操作。

    【讨论】:

    • 嗯明白了。是的,我也研究了很多,但无法弄清楚。谢谢你的澄清。
    猜你喜欢
    • 1970-01-01
    • 2022-11-10
    • 2022-01-22
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    • 2016-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多