Вопрос или проблема
Вот мой запрос на Cypher. Я не знаю, связано ли это с тем, что мой запрос написан в виде проблемы, или с тем, что версия 3.5 APOC не поддерживает прямой запрос атрибутов рёбер. Я проверил официальную документацию и не нашёл никакой релевантной информации.
match (first1:ent) where first1.nodeid in ['aab40c4d65d5c0a428ed84dc0109b0c4']
match (first2:ent) where first2.nodeid in ['000415fee2b0272cdcc2439f521b2e2e']
CALL apoc.create.vRelationship(first1,'teninvmerge',{conprop:'11'},first2) YIELD rel
RETURN rel,rel.conprop
вставьте описание изображения здесь
Я хотел бы получить свойства виртуального рёбра, которое я установил, непосредственно.
Ответ или решение
Конечно! Давайте разберем вашу проблему с использованием функции apoc.create.vRelationship
в Neo4j 3.5 и доступом к атрибутам создаваемого ребра.
Ваш запрос выглядит корректно, и вы правильно используете функцию apoc.create.vRelationship
, чтобы создать виртуальное ребро с заданными свойствами. Однако, проблема в том, что свойства, которые вы устанавливаете для виртуального ребра, будут недоступны напрямую через rel.conprop
в том контексте, в котором вы это делаете.
Когда вы создаете виртуальное ребро с помощью apoc.create.vRelationship
, функция возвращает объект rel
, которым можно управлять, но атрибуты ребра не будут доступны как свойства объекта rel
. Поэтому, чтобы получить атрибуты, вам нужно использовать RETURN
с явным указанием полей, поскольку можно обратиться к свойствам через коллекцию свойств.
Попробуйте изменить ваш запрос следующим образом:
MATCH (first1:ent) WHERE first1.nodeid IN ['aab40c4d65d5c0a428ed84dc0109b0c4']
MATCH (first2:ent) WHERE first2.nodeid IN ['000415fee2b0272cdcc2439f521b2e2e']
CALL apoc.create.vRelationship(first1, 'teninvmerge', {conprop: '11'}, first2) YIELD rel
RETURN rel, properties(rel) AS edgeProperties
В этом запросе модификация заключается в том, что мы добавили properties(rel) AS edgeProperties
, что позволяет вам получить все свойства создаваемого ребра.
Таким образом, результат вашего запроса будет содержать информацию о ребре и его свойства.
Надеюсь, это поможет вам решить вашу проблему с получением атрибутов виртуального ребра! Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться.