按多个标签搜索项目DynamoDB NodeJS



我需要在我的dynamoDB表中进行搜索,以匹配单个项目中的多个值。

这是我正在存储的项目类型:

{
"id": "<product id>",
"name": "Product Name",
"price": 1.23,
"tags": [
"tag1",
"tag2",
"tag3"
]

我需要返回一个项目数组,其中包含与逗号分隔列表中的所有标记匹配的标记。

例如:我正在寻找只包含标签的项目";标签1";以及";标签2";。

我的第一个方法是从dynamoDB表中获取所有项目,然后迭代每个项目以检查这个条件是否匹配,然后将目标项目添加到一个对象对象中。

我的方法显然没有成本效益,对node.js有什么建议吗?

没有一种方法可以用DynamoDB对这种通用情况(存储和搜索的任意数量的标签(进行索引优化。

您可以通过在表中添加额外的项来优化一个标记的检索,其中标记是分区键,然后从表中开始执行查询(对其他标记进行筛选(。

或者,您可以将数据复制到专为此类查询设计的OpenSearch中。

最新更新