我正在使用Nodejs和MySql创建社交应用程序。 我有一个名为粉丝的表格。字段为:关注者和关注。
为了解释我的问题,我在关注者表中创建了一些假数据:(关注者,关注)
Amir,Reza
Amir,Meghdad
Amir,Batman
Amir,David
Reza,Mohammad
Meghdad,Mohammad
蝙蝠侠,巴斯塔尼
穆罕默德,大卫
Bastani,Joseph
得到我想要的结果:(用户,级别,连接):
Reza,0,1
Meghdad,0,1
蝙蝠侠,0,1
David,0,2
Mohammad,1,2
Bastani,1,1
Joseph,2,1,
我无法使用MySql执行此操作,因此我尝试使用levelgraph数据库,并且在3之后的级别中让我感到困惑。有人可以帮助我吗?
答案 0 :(得分:0)
最后我自己的搜索工作:
let getNetwork = ( user, maxLevel = 5 )=>{
let getLevel = ( user, level )=>{
return new Promise( ( resolve, reject )=>{
let search = [];
for( let i = 0; i < level; i++ ){
search.push(
{
subject: db.v( i ),
object: db.v( (i+1) )
}
);
}
search[0].filter = obj => obj.subject == user && !( level > 1 && obj.trust < 1 );
db.search(search, (error, results)=>{
resolve( Object.keys( results ).map( i=>
Object.keys(results[i]).map( j=>
results[i][j]
)
) );
});
});
}
return new Promise( ( resolve, reject )=>{
let ret = [];
let getLevels = function (i=1){
if( i > maxLevel ){
resolve( ret );
}
else{
getLevel( user, i ).then( (lvlX)=>{
ret = ret.concat( lvlX );
getLevels( i+1 );
});
}
}
getLevels();
});
}
getNetwork('Amir').then( console.log );