Как я могу вернуть все свойства для node с помощью Cypher?
Я понимаю, что можно использовать символ подстановки (*) для возврата всех ссылок в запрос Cypher, например:
MATCH p:Product WHERE p.price='1950' RETURN *;
==> +----------------------------------------------------------------+
==> | p |
==> +----------------------------------------------------------------+
==> | Node[686]{title:"Giorgio Armani Briefcase",price:"1950",... |
==> +----------------------------------------------------------------+
Однако результатом является строка с единственным столбцом node 'с именем "p", из которого можно получить доступ к свойствам. Однако я хотел бы, чтобы в результирующих "строках" имена свойств назывались "столбцами". Что-то вроде:
MATCH p:Product WHERE p.price='1950' RETURN p.*;
==> +-------------------------------------------+
==> | title | price | ... |
==> +-------------------------------------------+
==> | "Giorgio Armani Briefcase" | "1950" | ... |
==> +-------------------------------------------+
Этот конкретный запрос недействителен, но есть ли способ достичь того же результата (не перечисляя все свойства явно, как в p.title, p.price, p...)?
Ответы
Ответ 1
Вы еще не можете сделать это в Cypher. Я думаю, что это была бы приятная функция, если вы хотите ее запросить.
Изменить (спасибо за комментарий, указав это):
Теперь вы можете сделать это с 2.2:
MATCH (p:Product) WHERE p.price='1950' RETURN keys(p);
Ответ 2
В последней версии cypher properties(n)
будут возвращены все ключи и свойства node. Кажется, работает только для одного node.
Я надеюсь, что это поможет людям.
Ответ 3
Просто для того, чтобы расширить доступ к клавишам:
MATCH (p:product) WITH DISTINCT keys(p) AS keys
UNWIND keys AS keyslisting WITH DISTINCT keyslisting AS allfields
RETURN allfields;
Ответ 4
Вы можете использовать предложение "как" и определить каждое свойство и то, что вы хотите назвать столбцом. Вам нужно будет идентифицировать каждое свойство, которое вы хотите вернуть индивидуально, хотя.
Пример:
MATCH p.product where WHERE p.price='1950' RETURN p.price as price, p.title as title, p.whatever, as anythingYouWant
Ответ 5
Вы можете вернуть n
в ваш запрос cypher, он вернет все ключи и свойства node.
например.:
MATCH (n:People) n
Это вернет
н:
{
"Date_of_Birth": "1981-04-23 00:00:00",
"Employee_Last_Name": "Aaaa",
"Employee_First_Name": "Baaa",
"Age": 36,
"Employee_Status": "Active"
}
Ответ 6
Я новичок в cypher, но кажется, что это возвращает все ключи для определенного типа node:
MATCH (p:product) RETURN keys(p)
Работает в Neo4J 3.0.