我有一个postgres表TABLE_A,如下所示:
TABLE_A:
id
name
我填充表格如下:
INSERT INTO TABLE_A VALUES(1, 'one')
INSERT INTO TABLE_A VALUES(2, 'two')
INSERT INTO TABLE_A VALUES(3, 'three')
然后我有一个redis DB,其中一行包含以下内容:
{
"idsAndRoles":
[
{"id":1,"roles":["A","B"]}
,{"id":2,"roles":["A"]}
]
}
现在,上面redis中的条目必须与postgres中的内容“合并”。我使用node来做到这一点。
所以我要做的第一件事就是返回一个像这样的新Promise:
return new Promise(function (resolve) {
redis.hget("myredisdb", "mykey", function(err, res){
//Here i get from redis the row I described above
});
}
在你看到评论的地方,我做了一次迭代来获取所有id,对于每个id,我也可以通过角色来到数组。 但是,我仍然需要“合并”postgres表TABLE_A。 基本上,在操作结束时,我需要一个具有上述数据的结构:
{
"idsAndRoles":
[
{"id":1, "name": "one", "roles":["A","B"]}
,{"id":2,"name": "two", "roles":["A"]}
]
}
或多或少,要么将数据从redis合并到postgres,要么反之亦然。
问题在于我无法创建循环并且对于每个元素查询postgres,因为我使用带有异步操作的节点。 解决这种情况的方法是什么?我相信一定有很多人都有同样的问题。