是否可以在DynamoDB中查询JSON数据?

use*_*868 1 json amazon-web-services amazon-dynamodb

假设我的JSON看起来像这样(这里提供示例) -

{
    "year" : 2013,
    "title" : "Turn It Down, Or Else!",
    "info" : {
        "directors" : [
            "Alice Smith",
            "Bob Jones"
        ],
        "release_date" : "2013-01-18T00:00:00Z",
        "rating" : 6.2,
        "genres" : [
            "Comedy",
            "Drama"
        ],
        "image_url" : "http://ia.media-imdb.com/images/N/O9ERWAU7FS797AJ7LU8HN09AMUP908RLlo5JF90EWR7LJKQ7@@._V1_SX400_.jpg",
        "plot" : "A rock band plays their music at high volumes, annoying the neighbors.",
        "rank" : 11,
        "running_time_secs" : 5215,
        "actors" : [
            "David Matthewman",
            "Ann Thomas",
            "Jonathan G. Neff"
       ]
    }
}
Run Code Online (Sandbox Code Playgroud)

我想查询所有genres包含的电影Drama.

我浏览了所有示例,但似乎我只能查询散列键和排序键.我不能将JSON文档作为密钥本身,因为不支持.

Udo*_*eld 8

你不能.DynamoDB要求您筛选的所有属性都有索引.

由于您希望独立于主索引进行查询,因此仅限于全局二级索引.

文档列出了支持哪种属性索引:

索引键属性可以包含基表中的任何顶级String,Number或Binary属性; 不允许使用其他标量类型,文档类型和集类型.

你的类型将是一个array字符串.因此,此时DynamoDB不支持此查询操作.

如果需要这种查询功能,您可能需要考虑其他基于NoSQL文档的数据库,这些数据库比MongoDB Atlas更灵活.