使用节点获取两个节点之间的关系cypher query

时间:2013-08-08 16:21:40

标签: node.js express neo4j cypher

我已经完成了,我想获得两个节点之间的关系,即用户节点和其他节点。这里用户节点有两种关系(用户) - [:know] - > (其他) 和(用户) - [:friendrequest] - > (其他)

我想做以下事情:

  1. 在视图中显示添加好友按钮,用户与其他用户之间不存在关系,
  2. 如果用户与其他
  3. 之间存在friendrequest关系,则显示好友请求
  4. 如果知道用户与其他
  5. 之间存在关系,则已经是朋友状态

    。实际代码就是这个。

          User.checkRelationship = function (user, fid, callback) {
    
      var uids = [user.uid, fid];
      async.map(uids, User.by_uid, function (err, usernodes) {
        if (!err && usernodes && usernodes.length) {
          User.relsCheck(usernodes, function (err, rels) {
            if (!err && rels) {
              console.log('relationship ' + JSON.stringify(rels.data()));
              callback(null, rels);
            } else {
              callback(err || new Error('friend request exists'));
            }
          });
        } else {
          callback(err || new Error('Unable to fetch user nodes: ' + uids.join(',')));
        }
      });
    };
    
    
    
      User.relsCheck = function (nodes, callback) {
      if (nodes.length !== 2) {
        return callback(new Error('Invalid/insufficient arguments'));
      }
      var query = [
      'START user=node({userId}), other=node({otherId})',
      'MATCH (user) -[rels?:RELTYPE]-> (other)',
      'RETURN rels'
       ].join('\n');
    
    
       var params = {
           userId: nodes[0].node().id,
           otherId: nodes[1].node().id,
        };
    
        db.query(query, params, callback);
        };
    

    查询和回调都有问题 请帮助别人,谢谢!

0 个答案:

没有答案