Neo4j:在foreach中动态创建节点属性,或者这样,属性键/值未知?

时间:2017-07-18 17:14:20

标签: neo4j cypher

在这里,我被困住了。

set t[x] = value[1]

属性值/键仅在运行时才知道。

在创建节点之后寻找动态设置属性值,如下所示:

match (a:User) 
with distinct(a.name) as property 
Match(b:Product) with property, b.Phone as value  
foreach(x in property  | 
         create(t:Test) set t[x] = value[1])

(请注意set t[x] = value[1]

或者

match (a:User) with distinct(a.name) as property
Match(b:Product) with property, b.Phone as value  
foreach(x in property  | 
     call apoc.apoc.create.nodes('Test', [x,value[0]))

(注意apoc.apoc.create.nodes('Test', [x,value[0])

Intension是User Property的值成为Test for Test节点。

1 个答案:

答案 0 :(得分:3)

您可以尝试apoc.map.setKey功能来设置地图的属性:

override public async Task StartAsync(IDialogContext context)
{
        await context.PostAsync("Would you please tell me your Customer ID?");
        context.Wait(MessageReceived);
}

[LuisIntent("None")]
private async Task None(IDialogContext context, IAwaitable<IMessageActivity> activity, LuisResult result)
{
    context.Done(true);
}