我创建了一个包含三个节点的小型数据库,Abraham,Isaac和Jacob。亚伯拉罕是以撒的父亲,艾萨克是雅各的父亲。
现在我执行以下查询:
MATCH (a:Person), (i:Person)
WHERE a.name='Abraham' and i.name='Isaac'
RETURN a, i
从Neo4J Web界面运行查询显示两个节点之间具有FATHER关系:
这很奇怪,因为我没有要求任何关系。 JSON响应不包含以下关系:
[{
"keys": [
"a",
"i"
],
"length": 2,
"_fields": [
{
"identity": {
"low": 0,
"high": 0
},
"labels": [
"Person"
],
"properties": {
"name": "Abraham"
}
},
{
"identity": {
"low": 1,
"high": 0
},
"labels": [
"Person"
],
"properties": {
"name": "Isaac"
}
}
],
"_fieldLookup": {
"a": 0,
"i": 1
}
}]
为什么Neo4J表现出这种关系?我怎么能让它停下来?我正在尝试创建一个返回一组节点之间的各种关系的查询,我真的不希望Neo4J干扰并添加自己的关系。
答案 0 :(得分:0)
这就是Neo4j浏览器可视化的方式,仅此而已。既然你已经拥有了两个节点,Neo4j就拥有它所需的一切(指针)来知道存在关系(并显示它)。如果你以编程方式处理结果(用Java或类似的......因为我认为Neo4j浏览器不会是"生产"结果)你将能够处理结果如你所愿。如果您只对名称而不是实际节点感兴趣,请执行
MATCH (a:Person), (i:Person)
WHERE a.name='Abraham' and i.name='Isaac'
RETURN a.name, i.name
希望这有帮助。
此致 汤姆