在 Neo4j 中使用 Ajax 使用 Cypher 查询整个图形数据库

Posted

技术标签:

【中文标题】在 Neo4j 中使用 Ajax 使用 Cypher 查询整个图形数据库【英文标题】:Query whole graph DB with Cypher using Ajax in Neo4j 【发布时间】:2015-10-02 11:43:31 【问题描述】:

我正在尝试在 Neo4j 中使用 Ajax 查询整个图形数据库。下面是我的ajax代码。

$.ajax(  
    type: "POST",  
    url: "http://localhost:7474/db/data/transaction/commit ",  
    dataType: "json",  
    contentType: "application/json;charset=UTF-8",  
    data: JSON.stringify("statements": ["statement": "MATCH (n) OPTIONAL MATCH (n)-[r]-() RETURN n,r"]),  
    success: function (data, textStatus, jqXHR)   
        $(".neo4jResponse").html(JSON.stringify(data));  
    ,  
    error: function (jqXHR, textStatus, errorThrown)   
        alert("Error");  
      
);`

它返回的响应为:

    
    "results":
    [
        
            "columns":["n","r"],
            "data":
            [
                "row":["title":"Tourism","name":"Tourism",],
                "row":["title":"Tourism","name":"Tourism",],
                "row":["title":"Coastal Debris","name":"Coastal Debris",],
                "row":["title":"Coastal Debris","name":"Coastal Debris",],
                "row":["title":"Quality","name":"Quality",],
                "row":["title":"Quality","name":"Quality",],
                "row":["title":"Recreational Value","name":"Recreational Value",],
                "row":["title":"Recreational Value","name":"Recreational Value",],
                "row":["title":"Eco-Tourism Incentives","name":"Eco-Tourism Incentives",],
                "row":["title":"Eco-Tourism Incentives","name":"Eco-Tourism Incentives",],
                "row":["title":"Eco-Tourism","name":"Eco-Tourism",],
                "row":["title":"Eco-Tourism","name":"Eco-Tourism",]
            ]
        
    ],
    "errors":[]

为什么我无法建立关系? 任何建议都会有所帮助。

注意 - Neo4j 中的所有节点都是通过关系连接的。

【问题讨论】:

【参考方案1】:

你正在恢复关系。

["title":"Tourism","name":"Tourism",]

第二张地图是空地图,因为您的关系没有属性。

如果您在 Neo4j 浏览器中发出相同的查询,您可以看到行格式的结果是相同的:

如果您需要某种额外的元数据,例如类型、开始节点、结束节点,您需要为您的查询指定 restgraph resultDataContent :

data: JSON.stringify("statements": ["statement": "MATCH (n) OPTIONAL MATCH (n)-[r]-() RETURN n,r", "resultDataContents":["row", "graph", "rest"])

由您选择适合您需要的结果数据内容。

参考:http://neo4j.com/docs/stable/rest-api-transactional.html#rest-api-return-results-in-graph-format

【讨论】:

以上是关于在 Neo4j 中使用 Ajax 使用 Cypher 查询整个图形数据库的主要内容,如果未能解决你的问题,请参考以下文章

在 Azure Devops 或 Azure 机器学习中使用 Neo4j

neo4j是啥?怎么配置?能单独使用吗?

使用 neo4j 在 python 中开发 Web 应用程序

在 GWT 中使用嵌入式 Neo4j 时出现 AccessControlException

neo4j 中参考节点的概念是不是仍在使用或弃用?

eclipse中怎么使用neo4j