Скажем, у меня есть узел в базе данных с меткой L и несколькими случайными свойствами A = B, C = D и т. Д. Я хочу объединить другой узел в базе данных также с меткой L, но только обладает свойствами А = В.Cypher точно соответствует свойствам
С текущим Cypher, я мог бы просто сделать простой:
merge (node:L {A:B}) return node
Но поскольку матч/слияние рассматривает любые узлы с этими свойствами рассчитывать, что будет объединен в первый узел. Есть ли способ получить это точное соответствие? Я думал сделать что-то вроде
merge (node:L {props}) where {props} == {all node's props}
, но эта функциональность, чтобы перечислить все реквизит элементов узла не существует, хотя это на их top five ideas.
Просто проверил это. Не знал о функции keys() – boses
Вопрос: есть ли способ переписать это как функцию слияния, где он возвращает либо новый узел, либо узел уже там? – boses
К сожалению, я не смог этого сделать. Вы можете вернуть X и проверить его значение. Он возвращает [1], если узел был создан или null, если он уже существует. Возможно, с этой информацией вы можете попытаться запустить другой запрос, чтобы получить нужный узел. – pablosaraiva