扫描不存在的列表中的嵌套地图

Scan for a nested Map inside a List that don't exist

我希望通过 AWS CLI 构建扫描以获取“on_demand”地图不存在的结果。 “on_demand”映射嵌套在其他父映射 [0 , 1, 2...] 中。依次在播放列表列表中。

扫描的条件是 is_offsite = true,video_type = OFFSITE,当然还有“on_demand”地图不存在的麻烦条件。

这是我的 table 结构。

{
"Items": [
    {
        "playlist": {
            "L": [
                {
                    "M": {
                        "duration": {
                            "N": "46"
                        },
                        "on_demand": {
                            "M": {
                                "bucket": {
                                    "S": "s3 Bucket"
                                },
                                "key": {
                                    "S": "bucket url to video file"
                                }
                            }
                        },
                        "download": {
                            "M": {
                                "bucket": {
                                    "S": "s3 bucket"
                                },
                                "key": {
                                    "S": "bucket url to video file"
                                }
                            }
                        },
                        "status": {
                            "S": "on_demand"
                        }
                    },
                    "M": {
                        "duration": {
                            "N": "60"
                        },
                        "on_demand": {
                            "M": {
                                "bucket": {
                                    "S": "s3 Bucket"
                                },
                                "key": {
                                    "S": "bucket url to video file"
                                }
                            }
                        },
                        "download": {
                            "M": {
                                "bucket": {
                                    "S": "s3 bucket"
                                },
                                "key": {
                                    "S": "bucket url to video file"
                                }
                            }
                        },
                        "status": {
                            "S": "on_demand"
                        }
                    }
                }
            ]
        },
        "video_type": {
            "S": "OFFSITE"
        },
        "id": {
            "S": "random hash id"
        },
        "is_offsite": {
            "BOOL": true
        },
    }
]
}

如有任何帮助,我们将不胜感激。

这是通过使用以下内容完成的:

aws dynamodb scan \
--table-name table-name \
--projection-expression "id" \
--filter-expression 'is_offsite = :os AND video_type = :vt AND attribute_not_exists(playlist[0].on_demand)' \
--expression-attribute-values '{":os": { "BOOL": true},":vt": {"S": "OFFSITE"}}'