[英]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.