我有从下面的代码中获取的用户列表
const q = 'SELECT * FROM users WHERE tenant = ?'
cassandra.execute(q, [tnid], (err, r) => {
if (err) return res.end500(err)
const u = r.rows.map(cred)
const data = { users: u }
res.end200(data)
})
inside map()我在下面调用cred()
function cred(src)
{
var data=src
async.series([
function(callback){
hashs(src.name.full_name, callback)
}
],
function(err,res) {
console.log("------res--------")
if (err) {
console.log(err)
callback()
}
data.hash=res
console.log(data)
return data
})
}
async调用hashs()函数来获取特定用户所需的哈希值
function hashs(un,callback) {
const q = SELECT hash FROM user_credentials WHERE username = ?
cassandra.execute(q, un, (err, r) => {
if (err) return err
console.log(r.rows)
callback(null,r.rows[0])
})
callback(null,un)
}
但主要问题是,一旦我获得用户详细信息,第二个查询就不会被触发来获取哈希值,因此我没有从第二个表中获取哈希值。
这是在SQL中命名为JOIN的相同概念,但我使用的是基于nosql的Cassandra,因此我无法在单个查询中获取特定用户的所有详细信息。
基本上我无法在cassandra.execute()
map()