如何使用 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