Jak najít příbuzné položky založené na podmínce, jako je datem minimální v Neo4j?

hlasů
0

Mám datový model, kde máme projekty a milníky. Jeden projekt může mít mnoho milníky. Chtěl bych uvést každý projekt a milník s datem minimální.

V případě:

Project1 -> milestone1 {datum: '01.1.2019'}

Project1 -> Milestone2 {datum: '2019-03-03'}

Project2 -> milestone3 {datum: '01.01.2018'}

Project2 -> milestone4 {datum: '03.3.2019'}

Chci, aby se vrátit

Project1 -> milestone1 {datum: '01.1.2019'}

Project2 -> milestone3 {datum: '01.01.2018'}

Snažil jsem se spoustu bláznivých řešení, kde jsem výpočet minimální data milníků, projít min_dates pomocí „s“ a znovu odpovídat na základě vypočtené datum min, ale zdá se, váhavý a není spolehlivý.

Položena 10/10/2019 v 00:55
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
1

@ User3137190, to je stručná verze své odpovědi:

MATCH (p:Project)-[:HAS_MILESTONE]->(m:Milestone)
WITH p, m ORDER BY p.name, m.date
RETURN p.name, COLLECT(m)[0].name
Odpovězeno 10/10/2019 v 02:24
zdroj uživatelem

hlasů
0

Našel odpověď v nepříbuzného post. Nevěděl jsem, že bychom mohli využít objednávku v doložkou

match (p:Project)-[:HAS_MILESTONE]-(m:Milestone)
with p, m order by p.name, m.date
with p, collect(m) as milestones
with p, milestones[0] as first_milestone
return p.name, first_milestone.name
Odpovězeno 10/10/2019 v 01:46
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more