如何使用 Java 在 Neo4j 中访问 space 分隔 属性
How to access space separated property in Neo4j using Java
我正在创建出租车网络的图形数据库,在每个节点中存储一辆出租车,其中包含一长串(日期、费用)属性,我将日期存储在 Java
DATE
包含空格的格式,但我在匹配时无法访问它。
MATCH (t) WHERE t.name='someTaxi' RETURN t.Sun Mar 01 00:00:00 EET 2015;
但这没有用,所以我使用了反引号
我第二次存储 属性 带有反引号的密钥 'Sun Mar 01 00:00:00 EET 2015'
MATCH (t) WHERE t.name='someTaxi' RETURN t.'Sun Mar 01 00:00:00 EET 2015';
但这也不起作用。
那么是否可以像 Neo4j 那样存储一个 属性 密钥,我怎样才能 return 它?
问题
您正在以这种方式存储一些数据(json 表示):
{name: "someTaxi", Sun Mar 01 00:00:00 EET 2015 : fees}
考虑到 Neo'j 使用关系管理此类数据的能力,这个数据模型很糟糕。
解决方案
您必须使用 Neo4j 的强大功能创建更好的数据模型:关系。这是您要执行的操作的示例:
这里是节点的详细信息(伪密码表示):
(:Taxi{name:someTaxi})-[:EARNED{date:<Here you set your date>}]->(:Fees{value:<The amount>)
现在,要匹配您的费用,您只需使用此查询即可:
MATCH (t:Taxi{name : <taxi Name>})-[r:EARNED{date: <yourDate>}]->(f:Fees)
RETURN f.value
我正在创建出租车网络的图形数据库,在每个节点中存储一辆出租车,其中包含一长串(日期、费用)属性,我将日期存储在 Java
DATE
包含空格的格式,但我在匹配时无法访问它。
MATCH (t) WHERE t.name='someTaxi' RETURN t.Sun Mar 01 00:00:00 EET 2015;
但这没有用,所以我使用了反引号
我第二次存储 属性 带有反引号的密钥 'Sun Mar 01 00:00:00 EET 2015'
MATCH (t) WHERE t.name='someTaxi' RETURN t.'Sun Mar 01 00:00:00 EET 2015';
但这也不起作用。
那么是否可以像 Neo4j 那样存储一个 属性 密钥,我怎样才能 return 它?
问题
您正在以这种方式存储一些数据(json 表示):
{name: "someTaxi", Sun Mar 01 00:00:00 EET 2015 : fees}
考虑到 Neo'j 使用关系管理此类数据的能力,这个数据模型很糟糕。
解决方案
您必须使用 Neo4j 的强大功能创建更好的数据模型:关系。这是您要执行的操作的示例:
这里是节点的详细信息(伪密码表示):
(:Taxi{name:someTaxi})-[:EARNED{date:<Here you set your date>}]->(:Fees{value:<The amount>)
现在,要匹配您的费用,您只需使用此查询即可:
MATCH (t:Taxi{name : <taxi Name>})-[r:EARNED{date: <yourDate>}]->(f:Fees)
RETURN f.value