如何获取Neo4j节点的属性

4
我正在使用Nodejs连接到neo4j,以获取ServiceConsumer节点的属性,但不确定如何实现。以下是我的代码,用于连接到neo4j。假设ServiceConsumer有一些属性,例如citystatenameuserId,我需要检索ServiceConsumer的名称。我从前端获取userId,并基于此查询neo4j数据库以获取节点信息。我该如何获取ServiceConsumer的名称?感谢您的帮助。
var user = this.userId;
    var request = require("request");
    var host = 'localhost';
        port = 7474;
    var httpurlforconnection ='http://' + host + ':' + port + '/db/data/transaction/commit';


    /*Let’s define a function which fires the cypher query.*/

    function runCypherQuery(query, user, callback) {
      request.post({
          uri: httpUrlForTransaction,
          json: {statements: [{statement: query, parameters: user}]}
        },
        function (err, res, body) {
          callback(err, body);
        })
    }

    // Let’s fire some queries below 

    runCypherQuery(
      'MATCH (n:ServiceConsumer {userId : {} }) RETURN n', {
        userId: 'user',
      }, function (err, resp) {
        if (err) {
          console.log(err);
        } else {
          console.log(resp);
        }
      }
    );
2个回答

1

请查看如何使用Cypher返回节点的所有属性及其名称和值

你可以使用nodejs进行相同的操作,简单的POST请求可以将整个节点返回给您,然后使用JSON将其转换为对象。

顺便说一句,你的代码很好,你可以直接拿到“resp”对象,它应该包含结果JSON。


谢谢你的回答,有点忙...我稍后会试一下。 - Kunal Kumar

0

我看到的一个明显的问题是您没有指定userId参数。您的Cypher应该类似于这样:

MATCH (n:ServiceConsumer {userId: {user_id}}) RETURN n

这有帮助吗?


实际上,我在运行时传递了userId参数,我已经将其存储在变量“user”中。userId不会是硬编码的。 - Kunal Kumar
是的,我看到你传递了 userId 参数,但你没有指定它在查询字符串中的位置。只是像 {} 这样放置空括号并不起作用,我认为。 - Brian Underwood

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接