DynamoDB 筛选项不包含
DynamoDB filter items not contains
我有以下问题:
分区键 (pk) 和排序键 (sk):
pk sk
1 ITEMS#1
1 ORDERS#1
2 ITEMS#1
3 ITEMS#2
如何检索所有不包含订单的 pk?我试过过滤器:
sk not contains "ORDERS"
但是 returns
pk sk
1 ITEMS#1
2 ITEMS#1
3 ITEMS#2
我只想 return pk 2 和 3。
为了有效地做到这一点,您必须 pre-materialize 将 orders-or-not 事实放入您的数据中,并以这样一种方式构建事物,以便该事实被适当地索引并准备好使用。
例如,您可以在每个 PK 下创建一个项目,其 SK 为 META
用于关于该 PK 的元数据,并且在该项目上您可以具有 HasOrders
的属性,如果它存在在该项目集合中有任何订单。然后,您可以使用它作为 GSI 分区键来创建 GSI,并非常有效地找到所有具有查询订单的项目。
每次有人下第一笔订单时,您都必须更新 META。
我有以下问题:
分区键 (pk) 和排序键 (sk):
pk sk
1 ITEMS#1
1 ORDERS#1
2 ITEMS#1
3 ITEMS#2
如何检索所有不包含订单的 pk?我试过过滤器:
sk not contains "ORDERS"
但是 returns
pk sk
1 ITEMS#1
2 ITEMS#1
3 ITEMS#2
我只想 return pk 2 和 3。
为了有效地做到这一点,您必须 pre-materialize 将 orders-or-not 事实放入您的数据中,并以这样一种方式构建事物,以便该事实被适当地索引并准备好使用。
例如,您可以在每个 PK 下创建一个项目,其 SK 为 META
用于关于该 PK 的元数据,并且在该项目上您可以具有 HasOrders
的属性,如果它存在在该项目集合中有任何订单。然后,您可以使用它作为 GSI 分区键来创建 GSI,并非常有效地找到所有具有查询订单的项目。
每次有人下第一笔订单时,您都必须更新 META。