标题:我如何动态地命名一个集合?如何动态命名集合?
伪代码:collect(n) AS :Label
这样做的主要目的是在API服务器(节点应用)的属性的容易阅读。
放牧,例如:在JSON
MATCH (user:User)--(n)
WHERE n:Movie OR n:Actor
RETURN user,
CASE
WHEN n:Movie THEN "movies"
WHEN n:Actor THEN "actors"
END as type, collect(n) as :type
预期输出:
[{
"user": {
....
},
"movies": [
{
"_id": 1987,
"labels": [
"Movie"
],
"properties": {
....
}
}
],
"actors:" [ .... ]
}]
我已经得到最接近的是:
[{
"user": {
....
},
"type": "movies",
"collect(n)": [
{
"_id": 1987,
"labels": [
"Movie"
],
"properties": {
....
}
}
]
}]
我们的目标是能够轻松读取JSON结果如下所示:
neo4j.cypher.query(statement, function(err, results) {
for result of results
var user = result.user
var movies = result.movies
}
编辑: 我在不能正确地命名数据库的语义对于任何混乱表示歉意。
您可以在输出的预期增加时,有两个相关的电影和演员?你将同时在同一行中得到两个... – InverseFalcon
我不知道我理解你。每当我在一个工作数据集上尝试这个时,collect(n)设法将两个集合分成两个不同的数组,这就是为什么我需要动态地命名该数组集合,而不是返回数据中的collect(n)。 我正在寻找的是一种方式来做var movies = response.movies等。 –
我已经更新了示例,希望能够澄清预期的输出。 –