我使用Neo4J来检索一个人及其技能。这是我的Cypher查询:
MATCH (p:Person {id: "1"})
OPTIONAL MATCH (p) -[exp:HAS_EXPERIENCE]->(s:Skill)
WITH collect(distinct {id: s.id, name: s.name}) as skills, p
RETURN p.id as id, skills
结果如下:
{
"id": "1",
"skills": [
{
"name": null,
"id": null,
}
]
}
正如您所看到的,技能列表中包含一个'默认'项目。但是,在这种特殊情况下,这个人没有技能。
为什么结果包含数组项?如何调整查询以返回空数组?
使用Neo4J 3.1.1。
答案 0 :(得分:3)
这应该有效:
display: inline-block
如果.ui-tabs .ui-tabs-panel {
display: inline-block;
border-width: 0;
padding: 1em 1.4em;
background: 0 0
}
与任何内容都不匹配, ...
this.state.countries.sort(/* Provide sort function here */).map((country,id) => {
...
只会MATCH (p:Person {id: "1"})
OPTIONAL MATCH (p)-[exp:HAS_EXPERIENCE]->(s:Skill)
RETURN p.id AS id,
CASE WHEN s IS NULL THEN [] ELSE COLLECT(distinct {id: s.id, name: s.name}) END as skills;
。
答案 1 :(得分:0)
您可能希望考虑以下事项:
MATCH (p:Person {id: "1"})
OPTIONAL MATCH (p) -[exp:HAS_EXPERIENCE]->(s:Skill)
RETURN p {id: p.id, skills: COLLECT(distinct s {.*})}
假设您希望从 技能 中获取所有字段。否则
... collect(distinct s {id:s.id, name:s.name})