Neo4j中的处理顺序和唯一属性

Neo4j中的处理顺序和唯一属性,neo4j,distinct,Neo4j,Distinct,我试着使用ORDERBY子句和DISTINCT,但到目前为止处理得不好 MATCH (p:Project {projectName: "Digital Lab"}) MATCH (p)<-[:PART_OF]-(d) RETURN d.date, d.prop1, d.prop2, d.prop3 ORDER BY d.date DESC LIMIT 10 现在我想得到一个表,它根据日期和唯一的prop1值具有最新的数据,这意味着 d.date d.prop1 d.prop2

我试着使用ORDERBY子句和DISTINCT,但到目前为止处理得不好

MATCH (p:Project {projectName: "Digital Lab"})
MATCH (p)<-[:PART_OF]-(d)
RETURN d.date, d.prop1, d.prop2, d.prop3 ORDER BY d.date DESC LIMIT 10
现在我想得到一个表,它根据日期和唯一的prop1值具有最新的数据,这意味着

d.date    d.prop1    d.prop2    d.prop3
123       a          123123     c54655
110       b          456464     d46546
103       c          454211     e45645
之后我用了这个,但像往常一样,我花了很多时间却没有进步

MATCH (p:Project {projectName: "Digital Lab"})
MATCH (p)<-[:PART_OF]-(d) WITH DISTINCT d.prop1 AS pro
RETURN d.date, pro, d.prop2, d.prop3 ORDER BY d.date DESC LIMIT 10
MATCH(p:Project{projectName:“数字实验室”})

匹配(p)您可以尝试以下查询:

MATCH (p)<-[:PART_OF]-(d) 
WITH d.prop1 AS pro,d.date AS date, d
ORDER BY pro, date DESC
WITH collect(d) AS items
WITH items[0] AS d
RETURN d.date, d.prop1, d.prop2, d.prop3 ORDER BY d.date DESC LIMIT 10

MATCH(p)此处是用于测试的样本数据:

CREATE (p:Project {projectName : "Digital Lab"})
CREATE (d1 {date: 123, prop1: 'a', prop2: 123123, prop3 : 'c54655'})
CREATE (d2 {date: 111, prop1: 'a', prop2: 454565, prop3 : 'b75655'})
CREATE (d3 {date: 110, prop1: 'b', prop2: 456464, prop3 : 'd46546'})
CREATE (d4 {date: 103, prop1: 'c', prop2: 454211, prop3 : 'e45645'})
CREATE (d5 {date: 100, prop1: 'c', prop2: 465562, prop3 : 'f45646'})
CREATE (p)<-[:PART_OF]-(d1)
CREATE (p)<-[:PART_OF]-(d2)
CREATE (p)<-[:PART_OF]-(d3)
CREATE (p)<-[:PART_OF]-(d4)
CREATE (p)<-[:PART_OF]-(d5)

你可以在这里找到答案:或者像这样进行查询:MATCH(p:Project{projectName:“Digital Lab”})MATCH(p)Sweet lord,你用Neo4j帮了我两次忙!再次感谢布鲁诺!
CREATE (p:Project {projectName : "Digital Lab"})
CREATE (d1 {date: 123, prop1: 'a', prop2: 123123, prop3 : 'c54655'})
CREATE (d2 {date: 111, prop1: 'a', prop2: 454565, prop3 : 'b75655'})
CREATE (d3 {date: 110, prop1: 'b', prop2: 456464, prop3 : 'd46546'})
CREATE (d4 {date: 103, prop1: 'c', prop2: 454211, prop3 : 'e45645'})
CREATE (d5 {date: 100, prop1: 'c', prop2: 465562, prop3 : 'f45646'})
CREATE (p)<-[:PART_OF]-(d1)
CREATE (p)<-[:PART_OF]-(d2)
CREATE (p)<-[:PART_OF]-(d3)
CREATE (p)<-[:PART_OF]-(d4)
CREATE (p)<-[:PART_OF]-(d5)
MATCH (p:Project {projectName: "Digital Lab"})<-[:PART_OF]-(d)
WITH d as d ORDER BY d.prop1, d.date DESC
WITH d.prop1 as prop1, collect(d) as items
ORDER BY prop1
RETURN items[0]
╒════════════════════════════════════════════════════════╕
│"items[0]"                                              │
╞════════════════════════════════════════════════════════╡
│{"prop2":123123,"date":123,"prop1":"a","prop3":"c54655"}│
├────────────────────────────────────────────────────────┤
│{"prop2":456464,"date":110,"prop1":"b","prop3":"d46546"}│
├────────────────────────────────────────────────────────┤
│{"prop2":454211,"date":103,"prop1":"c","prop3":"e45645"}│
└────────────────────────────────────────────────────────┘