集合的并集查询

Union of sets query

本文关键字:查询 集合      更新时间:2023-09-26

我在DynamoDB中创建项目作为集合,类似于:

ddb.updateItem({TableName: table, Key: key {Category: {S: categoryName}},
    AttributeUpdate: {MySet: {Action: "ADD", Value: {SS: [ValueToAdd]}}}
});

这工作得很好,MySet适当地填充每个类别。

现在,我想从给定的类别列表中得到所有集合的并集。比如我有:

tip: [1, 2, 3],
foo: [1, 3, 5],
bar: [3, 5, 7],

我想获得tipfoobar的所有设定值——结果将是1, 2, 3, 5, 7。如果只是tipfoo,则为1, 2, 3, 5,等等。

我可以通过使用ddb.query为每个单独的类别来获得集合,然后在JavaScript中获得集合的联合,但集合可能相对较大,因此通过查询可能更好。我看到UNION是DynamoDB中的关键字,但我似乎找不到更多的信息。

是否可以从DynamoDB查询中获得集合的并集?

不,这是不可能的,"UNION"不支持在DynamoDB查询(http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html),并在没有其他操作实际上(http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Operations.html)。

这是因为DynamoDB必须简单一些,以提供可预测的性能和良好的可伸缩性,并且只有从存储节点检索数据所需的基本操作才由前端/协调器计算,而将其他计算留给客户端。