首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用case语句在neo4j密码中创建关系

使用case语句在neo4j密码中创建关系
EN

Stack Overflow用户
提问于 2017-03-24 23:26:54
回答 2查看 1.5K关注 0票数 1

我在下面的表单中有一个JSON:

代码语言:javascript
运行
AI代码解释
复制
{ "conditions": [ { "id": "123", "type": "a", entities: ["529", "454"] },
                  { "id": "124", "type": "b", entities: ["530", "455"] }
  ]
} 

我希望基于类型属性在条件节点与节点A实体或节点B实体之间创建关系。假设这些实体已经存在于neo4j中,则可以是A/B。

我正在尝试下面的密码,但这不起作用。

代码语言:javascript
运行
AI代码解释
复制
WITH {json} as data
UNWIND data.conditions as condition 
MATCH (c:Condition { conditionId: condition.id})
CASE c.type 
    WHEN 'a' THEN FOREACH (sid IN condition.entities | 
        MERGE (s:NodeA {nr_serverId:sid}) MERGE (s)-[:ATTACHED_TO]->(c)
    )
    WHEN 'b' THEN FOREACH (aid IN condition.entities | 
       MERGE (a:NodeB {nr_appId: aid}) MERGE (a)-[:ATTACHED_TO]->(c)
    )
END;

有没有人能帮我找出正确的方法?谢谢。

EN

回答 2

Stack Overflow用户

发布于 2017-03-25 07:06:47

由于目前cypher中没有经典的条件语句,因此您可以使用famous trick with foreach and case

代码语言:javascript
运行
AI代码解释
复制
WITH {json} as data
UNWIND data.conditions as condition 
MATCH (c:Condition { conditionId: condition.id})
FOREACH (ift in CASE WHEN c.type = 'a' THEN [1] ELSE [] END |
    FOREACH (sid IN condition.entities | 
        MERGE (s:NodeA {nr_serverId:sid}) MERGE (s)-[:ATTACHED_TO]->(c)
    )
)
FOREACH (ift in CASE WHEN c.type = 'b' THEN [1] ELSE [] END |
    FOREACH (aid IN condition.entities | 
       MERGE (a:NodeB {nr_appId: aid}) MERGE (a)-[:ATTACHED_TO]->(c)
    )
)
票数 2
EN

Stack Overflow用户

发布于 2017-05-15 22:32:48

APOC Procedures刚刚更新了对conditional cypher execution的支持。您需要3.1.3.7或更高版本(如果使用Neo4j 3.1.x),或者3.2.0.3或更高版本(如果使用Neo4j 3.2.x)。

下面是使用这些新过程执行查询的示例:

代码语言:javascript
运行
AI代码解释
复制
WITH {json} as data
UNWIND data.conditions as condition 
MATCH (c:Condition { conditionId: condition.id})
CALL apoc.do.case([
  c.type = 'a', 
   "FOREACH (sid IN condition.entities | 
        MERGE (s:NodeA {nr_serverId:sid}) MERGE (s)-[:ATTACHED_TO]->(c))",
  c.type = 'b',
   "FOREACH (aid IN condition.entities | 
       MERGE (a:NodeB {nr_appId: aid}) MERGE (a)-[:ATTACHED_TO]->(c))"
], '', {condition:condition, c:c}) YIELD value
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43010726

复制
相关文章
ASP.NET将Session保存到数据库中
因为ASP.NET中Session的存取机制与ASP相同,都是保存在进行中, 一旦进程崩溃,所有Session信息将会丢失,所以我采取了将Session信息保存到SQL Server中,尽管还有其它的 几个方式(本文不作介绍),要将Session保存到SQL Server中,需要有以下几个步骤: 1.首先要创建用于保存Session数据的数据库,以命令行的形式用aspnet_regsql.exe来完成,具体命令为 C:\WINDOWS\Microsoft.NET\Framework\v2.0.5072
磊哥
2018/04/26
2.6K0
ASP.NET MVC的Model元数据与Model模板:将”ListControl”引入ASP.NET MVC
我们不仅可以创建相应的模板来根据Model元数据控制种类型的数据在UI界面上的呈现方法,还可以通过一些扩展来控制Model元数据本身。在某些情况下通过这两者的结合往往可以解决很多特殊数据的呈现问题,我
蒋金楠
2018/01/15
4.9K0
ASP.NET MVC的Model元数据与Model模板:将”ListControl”引入ASP.NET MVC
ASP.NET MVC 4 - 测试驱动 ASP.NET MVC
测试驱动 ASP.NET MVC Keith Burnell 下载代码示例 模型-视图-控制器 (MVC) 模式的核心是将 UI 功能划分成三个组成部分。模型表示您的领域的数据和行为。视图管理模型的显示并且处理与用户的交互。控制器协调视图和模型之间的交互。通过这样将本质上就难于测试的 UI 逻辑与业务逻辑分离开来,使得使用 MVC 模式实现的应用程序非常易于测试。在本文中,我将论述用于增强您的 ASP.NET MVC 应用程序的可测试性的最佳做法和技术,包括如何建立您的解决方案的结构、设计代码架构以便处理依
张善友
2018/01/22
5.5K0
ASP.NET MVC 4 - 测试驱动 ASP.NET MVC
ArrayList List<T> T[] Array
不保证会对 ArrayList 排序。 在执行需要对 ArrayList 排序的操作(如 BinarySearch)之前,必须对 ArrayList 进行排序。
lulianqi
2018/08/30
4230
ArrayList List<T> T[] Array
js 将数据保存到本地
name 文件名 data 数据 type mime类型 saveAs: function (name, data, type) { const element = document.createElementNS("http://www.w3.org/1999/xhtml", "a"), ev = document.createEvent("MouseEvents"), urlObject = window.URL || window.webkitURL || wi
路过君
2020/08/28
6.4K0
java操作redis: 将string、list、map、自定义的对象保存到redis中
import java.util.HashMap; import java.util.List; import java.util.Map; import redis.clients.jedis.Jedis; public class redis { public static void main(String[] args) { // 连接redis服务 Jedis jedis = new Jedis("127.0.0.1", 6379); // 密码验证-如果你没有设置redis
似水的流年
2018/01/14
4K0
java操作redis: 将string、list、map、自定义的对象保存到redis中
import java.util.HashMap; import java.util.List; import java.util.Map; import redis.clients.jedis.Jedis; public class redis { public static void main(String[] args) { // 连接redis服务 Jedis jedis = new Jedis("127.0.0.1", 6379); // 密码验证-如果你没有设置redis
似水的流年
2018/01/18
6K0
ASP.NET结合MVC+EF T4模板写后台管理系统框架(5)- 创建数据库
其实网站就是一座连接用户和数据库的梁桥 数据库通过网站,将信息以不同的方式,展现给客户,客户通过网站,对数据库进行各种操作 下面,我们用一个例子,给大家展示下基本的增删改查操作 创建数据库 创建数据模型,并根据模型生成数据库 输入数据库信息,生成数据库 记得选择是 点击完成后,会生成sql语句,右键,执行 出现这条信息,说明执行成功,至此,数据库创建完成
骤雨重山
2022/01/17
5780
ASP.NET结合MVC+EF T4模板写后台管理系统框架(5)- 创建数据库
java操作redis: 将string、list、map、自定义的对象保存到redis中
import java.util.HashMap; import java.util.List; import java.util.Map; import redis.clients.jedis.Jedis; public class redis { public static void main(String[] args) { // 连接redis服务 Jedis jedis = new Jedis("127.0.0.1", 6379); // 密码验证-如果你没有设置redis
似水的流年
2019/12/06
1.1K0
将所有对象存到数据库中在Shop.m中
如果将字典或数组直接存储在数据库中,会将数组或字典转化成字符串,所以可以使用归档与反归档的方法将数据进行编码和解码成二进制数据进行存储,而在数据库中需要使用blob类型存储二进制数据。
hrscy
2018/08/30
1.4K0
数据库查询出的数据list 集合,转为json 的形式存到redis
数据库查询出的数据list 集合,转为json 的形式存到redis, 写一个接口,直接查询redis ,将数据返回;
一写代码就开心
2023/02/13
5960
将查询结果保存到excel中
<?php //****************连接数据库*************** $localhost=”localhost”; $root=”root”; // 用户 $databasen
苦咖啡
2018/05/07
1.7K0
ASP.NET MVC Section
本篇文章我们来讨论一下ASP.NET MVC框架中的Section。 Section主要用于将一部分代码插入到 Layout页面中的指定位置。通俗地说就是,我们先在 Layout页面中通过@RenderSection("Header")的方式挖一个坑,告诉下面的视图页面说,我这个地方有个坑,你们把你们各自相关的代码放进来吧。然后,使用该Layout的视图页面通过如下的方式将一坨坨的代码送到Layout的坑中。
全栈程序员站长
2022/09/15
7690
如何将Excel和xml文件数据保存到数据库
Inherits System.Windows.Forms.Form     Dim DS1 As New System.Data.DataSet     Dim DS2 As New System.Data.DataSet
Java架构师必看
2021/03/22
2.1K0
ServiceStack.Host.MVC vs ASP.NET MVC
ServiceStack.Host.MVC vs ASP.NET MVC解决方案解决方案子项ServiceStack.Host.MVC(3.9.71)ASP.NET MVC(3.0)路由 路由规则1.只能配置/home/{name}/{page}形式 2.不能对匹配区域({name})指定任何形式的通配符(正则,等等)1.可配置各种形式的规则,比如:home/{name}_{page} 2.可以对匹配区域({name})指定正则匹配路由匹配url->路由表->RequestDTO->根据request.me
KenTalk
2018/09/11
9170
JSONArray转换成List<T>
这个是针对mybatis中json对象映射成实体类的需求,mybatis通过(typeHandler = FastjsonTypeHandler.class)会把数据库类型是json的转换为List类型,但是本质上没有变。打印出来会是这样:
全栈程序员站长
2022/09/07
1K0
ASP.NET MVC升级到ASP.NET Core MVC踩坑小结
ASP.NET Core是微软新推出的支持跨平台、高性能、开源的开发框架,它的优势不必多说,因为已经说得太多了。当然,现在依然有着数量庞大的系统运行于.NET Framework上,由于有大量的Break Changes,很多项目项目团队也不敢贸然升级,其中的考量也不全部是技术原因,更多的可能还是业务推进因素。
AI.NET 极客圈
2020/05/18
2.4K0
ASP.NET MVC使用javascript
@if (IsSectionDefined(“SubMenu”)) { @RenderSection(“SubMenu”, required: false) }
全栈程序员站长
2022/09/15
8590
ASP.NET MVC Action Filters
在看这篇Fun with Http Headers in ASP.NET MVC Action Filters的时候,提到了 Roni Schuetz在codeplex上创建的一个项目ASP.NET MVC Action Filters。计划在5月10日推出第一个版本。 项目计划包含的Action Filter: Action filter for creating easy REST API with JSON and XML Action filter for logging scenarios
张善友
2018/01/22
8630
ASP.NET MVC HtmlHelper类
ASP.NET MVC之 HtmlHelper 在ASP.NET MVC项目的开发中,一般会默认使用Razor视图来进行View层的编写,从而实现高效率的C#/HTML代码的混写。 示例 诸如下述代码
李郑
2018/03/01
1.9K0
ASP.NET MVC HtmlHelper类

相似问题

将List<T>保存到XML文件

62

ASP.Net MVC 3 DataAnnotations验证List<T>

24

从List<T>保存到txt

71

ASP.NET MVC2 List<T>模型验证

11

ASP.NET MVC 3 List<T>到IEnumerable<SelectListItem>

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档