如何在Memgraph中返回邻居节点属性?以权游沙盒场景为例
Memgraph实现《权力的游戏》角色信息查询方案
Memgraph与Neo4j的Cypher语法高度兼容,你可以直接基于模式匹配和RETURN子句实现需求,核心逻辑和Neo4j一致,以下是具体实现方式:
核心查询语句
MATCH (character:Character) OPTIONAL MATCH (character)-[:LOYAL_TO]->(faction:Faction) OPTIONAL MATCH (character)-[:VICTIM_IN]->(death_event:Event)-[:HAPPENED_IN]->(episode:Episode) OPTIONAL MATCH (killer:Character)-[:KILLER_IN]->(death_event) RETURN character.name AS 角色姓名, COALESCE(faction.name, '无') AS 所属阵营, COALESCE(episode.title, '未死亡') AS 死亡剧集, COALESCE(killer.name, '无') AS 杀死该角色的人物 ORDER BY 角色姓名;
关键功能说明
- 模式匹配与可选关联:使用
MATCH匹配所有角色节点,通过OPTIONAL MATCH处理阵营、死亡事件这类非必填关联,确保没有对应信息的角色也能被返回。 - 空值处理:借助
COALESCE函数给缺失信息的字段设置默认值,避免结果中出现空值,提升可读性。 - 关系类型精准匹配:直接通过
:LOYAL_TO、:VICTIM_IN、:KILLER_IN等关系类型关联角色与阵营、死亡事件、凶手节点,和你在Neo4j中的实现逻辑完全对齐。 - 自定义返回字段:通过
AS给返回字段设置中文别名,满足输出格式要求。
内容的提问来源于stack exchange,提问作者Adam Wu
相关产品推荐
相关产品推荐

