Как преобразовать запрос UNWIND в FOREACH в Neo4J Cypher? - PullRequest
0 голосов
/ 22 января 2019

У меня следующий запрос Neo4J Cypher:

UNWIND $mentionsRelations as mention 
MATCH (u:User{name:mention.from}) 
RETURN u.uid;

Параметры:

{
  "mentionsRelations": [
    {
      "from": "a",
      "to": "b"
    },
    {
      "from": "c",
      "to": "d"
    }
  ]
}

Можно ли переписать его, чтобы получить те же результаты, используя запрос FOREACH?

Я знаю, что он не принимает параметр MATCH, но мне просто любопытно, есть ли обходной путь для получения таких же результатов?

В основном я хочу повторить через mentionsRelations, используя FOREACH, и затем вывести любые совпадения в базу данных, которую он раскрывает.

Спасибо!

1 Ответ

0 голосов
/ 22 января 2019

В настоящее время невозможно, FOREACH предназначен только для операций записи и не может использоваться для простого сопоставления с узлами.

Есть ли какая-то причина, по которой UNWIND не будет работать для вас?

Вы также можете выполнить сопоставление на основе членства в списке, которое должно работать аналогично, хотя вам придется извлечь значения, которые будут использоваться для сопоставления свойства:

WITH [mention in $mentionsRelationships | mention.from] as froms
MATCH (u:User) 
WHERE u.name in froms
RETURN u.uid;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...