[英]How to filter list value in DynamoDB
我目前是 AWS DynamoDB 和 noSql 的新手。我在这里迷失了 DynamoDB 中的过滤列表值。
假设我在这张表中有 2 个项目。
[
{
"id": 1,
"title": "Robots in Music"
"topics": ["Robots", "Violin"]
},
{
"id": 2,
"title": "Where are good places to see stars"
"topics": ["Robots", "Stars"]
},
]
我想使用主题列进行过滤。
前任。
用户希望获得主题具有“机器人”的项目。
用户获取 ID 为 1 和 2 的项目
用户想要获得主题具有“星星”的项目。
然后用户获得 id 为 2 的项目。
我尝试搜索 inte.net,发现我可以使用“QueryFilter”“包含”。 但是,我知道“包含”正在扫描所有表,对于 DynamoDB,他们可以在单个查询中提取 1MB 的数据。 这意味着需要重复该操作,并且比使用单个索引的成本要高得多。
有什么方法可以使用 GSI 并有效地过滤列表吗?
不幸的是,您无法索引列表类型或任何其他类型的嵌套属性,并且您的用例将要求您Scan
整个表以了解哪些用户包含特定主题。
Scan
GetItem
如果用户只想要 id1 或者用户想要 id1 和 id2 那么BatchGetItem
GetItem
您的用例需要搜索嵌套属性,然后您可以考虑使用关系数据库或更灵活的东西,如 OpenSearch。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.