Jak znaleźć podobne elementy w oparciu o stan jak daty minimalnej w Neo4j?

głosy
0

Mam modelu danych, gdzie mamy projekty i etapy. Jeden projekt może mieć wiele kamieni milowych. Chciałbym wymienić każdego projektu i milestone z minimalnym terminie.

W przypadku:

project1 -> milestone1 {date: '01.1.2019'}

project1 -> Milestone2 {date: '03/03/2019'}

project2 -> milestone3 {date: '01.01.2018'}

project2 -> milestone4 {date: '03.03.2019'}

Chcę, aby powrócić

project1 -> milestone1 {date: '01.1.2019'}

project2 -> milestone3 {date: '01.01.2018'}

Próbowałem kilka szalonych rozwiązań gdzie obliczenia minimalnej dat Milestone, przekazać min_dates za pomocą „z”, a następnie dopasować ponownie na podstawie obliczonej daty min, ale wydaje się słaby i nie jest wiarygodne.

Utwórz 10/10/2019 o 00:55
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
1

@ User3137190, jest to zwięzła wersja odpowiedź:

MATCH (p:Project)-[:HAS_MILESTONE]->(m:Milestone)
WITH p, m ORDER BY p.name, m.date
RETURN p.name, COLLECT(m)[0].name
Odpowiedział 10/10/2019 o 02:24
źródło użytkownik

głosy
0

Znaleźć odpowiedź w niepowiązanych postu. Nie wiedziałem, że mogliśmy skorzystać zamówienie w sposób z klauzulą

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
Odpowiedział 10/10/2019 o 01:46
źródło użytkownik

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