如何使用Java访问Neo4j中的空间分隔属性

时间:2015-10-22 08:01:55

标签: java neo4j graph-databases

我正在创建一个出租车网络的图形数据库,在每个节点中存储一个带有一长串属性(日期,费用)的出租车,我在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 中存储属性键,如何返回?

1 个答案:

答案 0 :(得分:1)

问题

您正在以这种方式存储一些数据(json表示):

{name: "someTaxi", Sun Mar 01 00:00:00 EET 2015 : fees}

考虑到Neo使用关系管理此类数据的能力,这种数据模型很糟糕。

解决方案

您必须使用Neo4j的强大功能创建更好的数据模型:关系。这是你要做的一个例子: Graph Example

这是节点细节(伪密码表示):

(: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