首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Cypher对不同的标签进行排序

如何用Cypher对不同的标签进行排序
EN

Stack Overflow用户
提问于 2016-01-11 16:55:51
回答 2查看 1.7K关注 0票数 2

刚从neo4j开始,我想我会用一个真实的模型来教自己。陷入以下困境

模型

(d:Destination)-[:Hosts]->(a:Accommodation)

:Accommodation is sub-typed with other labels as :Homestay / :Hotel / :Guesthouse etc.

查询

对于给定的d.name,希望检索按其子类型分组的所有a.names

会感谢帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-12 01:30:01

要在Martin的解决方案上进行分层,您可以在一个临时步骤中筛选出容纳标签并返回zeroth元素。当然,这假设至少有两个标签可以开始(即确实存在一个子分类)。

代码语言:javascript
复制
match (d:Destination)-[:HOSTS]->(a:Accomodation)
with d
, a
, filter(type in labels(a) where type <> 'Accomodation')[0] as type
return d.name, type, collect(a.name)
票数 2
EN

Stack Overflow用户

发布于 2016-01-11 17:08:51

这应该是可行的:

代码语言:javascript
复制
MATCH (d:Destination)-[:Hosts]-(a:Accomodation)
WHERE d.name = 'some name'
RETURN DISTINCT labels(a), collect(a.name)

如果要查询子类型,则可能更容易将它们放在节点属性中。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34726973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档