鉴于子项(即数据库中的其他行)的计数为 0,如何删除 dynamodb 事务中的父项

How to delete parent item in a transaction in dynamodb given that the count of children (ie other rows in the db) is 0

我想删除 dynamodb(父节点)中的一行,但前提是它没有子节点,即同一 table 中的其他行。

我需要使用事务 deleteitem 但不确定要在条件表达式中放入什么。

我认为条件表达式不能在 dynamodb 中对其他行进行计数、扫描或查询是否正确?

我想在父行中添加一个计数或版本,但如果我添加一个子项,我需要在同一个事务批次中更新父项。我的理解是 dynamo 不会让两个事务写入项目更新同一事务批次中同一 table 中的不同行。

我想避免创建新的 table,但如果我们创建 table(父 -> 子计数),则可以删除该项目,但这需要配置和维护另一个 table.

是否有解决方案不需要我创建另一个 table and/or 我理解上的差距?

Am I correct in thinking that a condition expression can't do count or scan or queries in dynamodb for other rows?

是的。

I was thinking of putting a count or version in the parent row but then if I add a child, I need to update the parent in the same transaction batch.

没错。

My understanding is that dynamo doesn't let two transaction write items update different rows in the same table in the same transaction batch.

你在这里的理解(很高兴)是错误的。事务的全部意义在于以原子方式更新同一批次中的两个不同项目。

所以我的建议是在事务上将计数保留在父行中,并在删除条件下利用它。