繁体   English   中英

使用neo4jclient在一个事务中添加多个节点和关系

[英]Adding multiple nodes and relationships in one transaction using neo4jclient

我是neo4j和neo4jclient的新手,所以如果我的问题不正确,请原谅。

使用变异密码查询,可以在一个调用中创建多个节点和关系。 我想创建一个与neo4j附带的电影示例数据类似的查询,以便它在REST API的一篇文章中创建多个节点和关系。

是否可以使用neo4jclinet编写这样的查询?

我看过下面的文档,但看不到我所追求的查询类型的示例。 我对此很陌生,所以也许我错过了。

https://github.com/Readify/Neo4jClient/wiki/cypher-examples

通常有两种方法可以做到这一点。 首先是对多个查询使用批处理, neo4jclient不支持 查看源代码可以看到存在某种批处理支持(例如GraphClient.ExecuteBatch方法),但是它们是私有的。

第二个是通过将每个节点作为参数,这将导致请求所描述构建的Cypher查询这里 代码如下所示:

var queryBuilder = client.Cypher.
    Create ("(movie:Movide {newMovie})");

foreach (Movie movie in movies) {
    queryBuilder = queryBuilder.WithParam ("newMovie", movie);
}

queryBuilder.ExecuteWithoutResults ()

但是,这将引发ArgumentException:“在查询中已经定义了具有给定键的参数。” 如果列表中有一个以上的元素。

因此,您可能会陷入其中一种讨厌的解决方法中:

  1. 使用多个(索引)参数构建查询
  2. 对一个节点执行一个查询
  3. 不建议使用手动查询

在我看来,这似乎是一个值得向Readify报告的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM