Возврат свойства узла без расширения шаблона поиска / запроса - PullRequest
1 голос
/ 09 ноября 2019
  • У меня есть узел a, который подключен к нескольким узлам b.
  • Узлы b представляют результаты теста, которые классифицируются по их genericDocumentId. Тесты проводятся несколько раз, пока все не пройдены. Вот почему существует несколько узлов b с одинаковым значением для genericDocumentId. Единственное их отличие - это значения свойств createdOn и testedVersion.
  • . Я использовал функцию max(), чтобы возвращать только самый последний результат теста для каждого genericDocumentId. Запрос работает нормально, НО мне также нужно значение соответствующего testedVersion результата теста в возвращенной строке!
MATCH (a:Software)
WITH a OPTIONAL MATCH (a)-[:ISVERIFIED]-(b:Test)
RETURN a.objId, b.documentId, max(b.createdOn)

3 хита

  • Когда я добавляю свойство, количество обращений увеличивается, поскольку запрос теперь также учитывает свойство testedVersion и создает для него новые сегменты.
MATCH (a:Software)
WITH a OPTIONAL MATCH (a)-[:ISVERIFIED]-(b:Test)
RETURN a.objId, b.documentId, max(b.createdOn), b.testedVersion

7 попаданий (потому что b.testedVersion расширяет шаблон и создает новые сегменты)

Мне нужен способ добавить свойства к уже отфильтрованным строкам и не влияет назапрос!

Я пытался WITH «заморозить» результаты перед добавлением свойства testedVersion в RETURN, но это не работает ...

1 Ответ

0 голосов
/ 09 ноября 2019

Решает ли это вашу проблему?

MATCH (a:Software)
WITH a 
OPTIONAL MATCH (a)-[:ISVERIFIED]-(b:Test)
WITH a.objId AS obj_id, b.documentId AS doc_id, b
ORDER BY obj_id, doc_id, b.createdOn DESC
RETURN obj_id, doc_id, collect(b)[0] AS most_recent
...