我是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创建关系任何问题,我无法在此框架上进行调试。任何人都可以帮助我解决这些问题之间没有关系的根本原因。
答案 0 :(得分:1)
当你收到http-200时,不确定你在哪里看到问题,这很好。
如果您的意思是data
为空 - >它将包含新创建的关系属性,并且由于没有,它将不包含数据。
您还可以返回id(r)
或type(r)
在这种情况下,你可能只是在你身份的某个地方有错字。或者属性名称或者其他什么。如果您的MATCH实际找到word
和audiofiles
,请尝试手动运行查询。 (顺便说一句。标签通常是大写的,而不是小写的)
你应该使用参数!
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);
});