Amazon web services 基于链接id的递归扫描表

Amazon web services 基于链接id的递归扫描表,amazon-web-services,amazon-dynamodb,Amazon Web Services,Amazon Dynamodb,我在DynamoDB有一张桌子,就像下面的一张一样。id是主键,链接的id是辅助索引 id|value|linked_id 1 | one | #NULL 8 | two | #NULL 2 | two | 1 6 | two | 8 3 | two | 2 是否可以在DynamoDB中进行查询/扫描,以递归方式获取所有父项? 例如,当我传递id 3时,它返回第3行,然后返回第2行,因为linked_id不是空的,我们有一个id为2的行,它等于第3行的linked_id 如果链接的_id为#N

我在DynamoDB有一张桌子,就像下面的一张一样。id是主键,链接的id是辅助索引

id|value|linked_id
1 | one | #NULL
8 | two | #NULL
2 | two | 1
6 | two | 8
3 | two | 2
是否可以在DynamoDB中进行查询/扫描,以递归方式获取所有父项? 例如,当我传递id 3时,它返回第3行,然后返回第2行,因为linked_id不是空的,我们有一个id为2的行,它等于第3行的linked_id

如果链接的_id为#NULL-停止查询。我将SQL查询与子查询一起使用,但这需要花费很长时间

UPD 1。结果必须如下

id|value|linked_id
1 | one | #NULL
2 | two | 1
3 | two | 2

谢谢

假设表名为ABC,我们有一个dbModel来查询/扫描表

function main(id){
    return ABC.getItems(id)
        .pipe(getChild.bind(null)
        .execute();
}

  function getChild(queryResult, next){
    if(!queryResult.items.length) return;
    return Promise.map(queryResult.items, item =>{
      return ABC.getItems(item.linked_id).execute().then((res)=>allValues.push(res.items));
    })
      .then(()=> next());
}

您可以使用
.pipe
链接查询。虽然我很难理解这个问题。当我们使用链接的_id:2进行查询时,为什么要返回第1行或第2行?