我有以下結構:Neo4j Cypher基於相關節點屬性的查詢。獲取節點,最大屬性值
(A)-[:many]->(B)-[:also_many]->(C)
B
有一個名稱屬性。並且C
有日期屬性。 A
有很多B
相關,並且每個B
有很多C
有關。
我想獲得唯一B
連同C
其中c.date
是最高的。
日期存儲如下:「YYYY-MM-DD HH:MM:SS」。我正在使用apoc.date.parse(date)
來獲取時間戳值。
難道真的不想弄清楚如何繼續這個。
樣本數據集:
create (o:A {outlet: "SFO"}), (a:B {name: "Varun", date: "2017-04-01 00:00:00"}), (b:B {name: "Karen", date: "2017-04-12 00:00:00"}), (c:B {name: "Vicky", date: "2017-06-01 00:00:00"}), (aa:C {date: "2017-09-8 00:00:00", tag_no: "R2017123"}), (ab:C {date: "2017-09-02 00:00:00", tag_no: "R2017321"}), (ac:C {date: "2017-09-10 00:00:00", tag_no: "R2017423"}), (ad:C {date: "2017-09-23 00:00:00", tag_no: "R2017523"}), (ae:C {date: "2017-09-10 00:00:00", tag_no: "R2017930"}), (ba:C {date: "2017-09-02 00:00:00", tag_no:"R2017928"}), (bb:C {date: "2017-09-15 00:00:00", tag_no:"R2017039"}), (bc:C {date: "2017-09-10 00:00:00", tag_no:"R2017837"}), (bd:C {date: "2017-09-08 00:00:00", tag_no:"R2017022"}), (be:C {date: "2017-09-10 00:00:00", tag_no:"R2017883"}), (ca:C {date: "2017-09-11", tag_no:"R2017827"}), (cb:C {date: "2017-09-18", tag_no:"R2017322"}), (cc:C {date: "2017-09-21", tag_no:"R2017122"}), (cd:C {date: "2017-09-16", tag_no:"R2017877"}), (ce:C {date: "2017-09-08", tag_no:"R2017930"}), (o)-[:owns]->(a),(o)-[:owns]->(b),(o)-[:owns]->(c),(a)-[:subs]->(aa),(a)-[:subs]->(ab),(a)-[:subs]->(ac),(a)-[:subs]->(ad),(a)-[:subs]->(ae),(b)-[:subs]->(ba),(b)-[:subs]->(bb),(b)-[:subs]->(bc),(b)-[:subs]->(bd),(b)-[:subs]->(be),(c)-[:subs]->(ca),(c)-[:subs]->(cb),(c)-[:subs]->(cc),(c)-[:subs]->(cd),(c)-[:subs]->(ce);
我需要兩個查詢:
我想返回有日起說2014-04-01
和和最新的相關C
節點每個B
節點B
節點B.date
。在數據集中,我有兩個C
節點,它們具有相同的date
。但查詢應該只返回每個B
節點的一個結果。
而第二查詢是:
返回與上述的值,內日期B
節點不具有與日期範圍內日期C
節點,說「2017年9月1日」和「2017-09 -09" 。
爲什麼你需要APOC這個?這種格式的日期可以按照字典順序排列,所以'ORDER BY c.date DESC LIMIT 1'應該可以讓你獲得最大的價值。當然,如果你想使用這個日期,你必須解析它,但你可以在應用程序代碼中做到這一點。 –
我正在嘗試使用max()函數,並且此日期格式不兼容。 – notANerdDev
什麼是'字典學'?這對我來說是一個新名詞。是否有一個函數可以獲得幾個節點的最高日期? – notANerdDev