Sails Neo4J与sails-neo4J建立关系

时间:2015-10-12 10:59:42

标签: neo4j waterline node-neo4j

我是sailsJS和Neo4J的新手,我的包版是用参考ID在两个节点之间创建关系。

我的代码示例:

    params.id = 'b8995544-02fc-4148-807f-d9c9f0ebd60f';
    var q = [
        'MATCH (w:word{id:'+ JSON.stringify(params.id)+ '}),(a:audiofiles{wordId:'+JSON.stringify(params.id)+'}) CREATE (w)-[r:HASMANY]->(a) RETURN r' 
    ];
    connections[connection].connection.query(q.join(' '), {}).then(function (result) {
        console.log(result);
        cb(null, result);
        }, function (err) {
        cb(err, null);
        console.log(err);
    });

我的输出是:

     [ 'MATCH (w:word{id:"faedcf89-b323-48f4-9c29-f4396822f83c"}),(a:audiofiles{wordId:"faedcf89-b323-48f4-9c29-f4396822f83c"}) 
    CREATE (w)-[r:HASMANY]->(a) RETURN r' ]

    { columns: [ 'r' ],
 data: [],
   status:
      { httpCode: '200',
        statusCode: '200',
        httpMessage: 'OK',
        httpDescription: 'Request succeeded without error' } }

即便如此,它也没有在Neo4J创建关系任何问题,我无法在此框架上进行调试。任何人都可以帮助我解决这些问题之间没有关系的根本原因。

1 个答案:

答案 0 :(得分:1)

当你收到http-200时,不确定你在哪里看到问题,这很好。

如果您的意思是data为空 - >它将包含新创建的关系属性,并且由于没有,它将不包含数据。 您还可以返回id(r)type(r)

在这种情况下,你可能只是在你身份的某个地方有错字。或者属性名称或者其他什么。如果您的MATCH实际找到wordaudiofiles,请尝试手动运行查询。 (顺便说一句。标签通常是大写的,而不是小写的)

你应该使用参数!

params.id = 'b8995544-02fc-4148-807f-d9c9f0ebd60f';
var q = 
    'MATCH (w:word{id:{id}}), (a:audiofiles{wordId:{id}}) CREATE (w)-[r:HASMANY]->(a) RETURN r';
connections[connection].connection.query(q, params).then(function (result) {
    console.log(result);
    cb(null, result);
    }, function (err) {
    cb(err, null);
    console.log(err);
});