amazon-web-services - 基于链接id递归扫描表
问题描述
我在 DynamoDB 中有一张表,如下所示。id 是主键,linked_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 不是#NULL 并且我们有 id 2 的行,它等于第 3 行的linked_id。
如果linked_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());
}
推荐阅读
- assembly - 动态解密时计算调用指令偏移量
- python - python循环中的内存管理
- reactjs - 没有在 React.js 中设置的上下文更新
- java - Do-while 循环和数组
- firebase - 缺少“getter Equatable.props”的具体实现
- textures - 我使用 a-frame 将纹理应用到平面,但什么也没有出现
- elixir - Elixir 通用验证装饰器。引用和取消引用
- r - R:将向量中的值插入矩阵的某些列
- python - 在 selenium docker 映像中为 headless chrome 安装证书
- tableau-api - Tableau 命令行 - 导出季度文件