首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Scala AnormCypher查找路径?

使用Scala AnormCypher查找路径?
EN

Stack Overflow用户
提问于 2014-05-20 12:10:49
回答 1查看 354关注 0票数 2

AnormCypher文档提供了一个如何使用Stream:http://anormcypher.org/检索数据的示例

“访问返回查询结果的第一种方法是使用Stream。

当您对任何Cypher语句调用apply()时,您将收到一个懒惰的CypherRow实例流,其中每一行都可以被看作是一个字典:

代码语言:javascript
复制
 // Create Cypher query
 val allCountries = Cypher("start n=node(*) where n.type = 'Country' return n.code as code, n.name as name")

 // Transform the resulting Stream[CypherRow] to a List[(String,String)]
 val countries = allCountries.apply().map(row => 
   row[String]("code") -> row[String]("name")
 ).toList

我正试图使用相同的aproach来获得以下Cypher查询的路径:

MATCH p = (n {id: 'n5'})-[*]-(m) RETURN p;

但是,在运行此代码时:

代码语言:javascript
复制
Cypher("MATCH p = (n {id: 'n5'})-[*]-(m) RETURN p;")().map {row  =>
  println(row[Option[org.anormcypher.NeoRelationship]]("p"))
}

我有例外(见下文)。在这种情况下,如何从CypherRow获取路径信息?

代码语言:javascript
复制
 Exception in thread "main" java.lang.RuntimeException: TypeDoesNotMatch(Unexpected type while building a relationship)
    at org.anormcypher.MayErr$$anonfun$get$1.apply(Utils.scala:21)
    at org.anormcypher.MayErr$$anonfun$get$1.apply(Utils.scala:21)
    at scala.util.Either.fold(Either.scala:97)
    at org.anormcypher.MayErr.get(Utils.scala:21)
    at org.anormcypher.CypherRow$class.apply(AnormCypher.scala:303)
    at org.anormcypher.CypherResultRow.apply(AnormCypher.scala:309)
    at bigdata.test.n4j.Simple$$anonfun$main$1.apply(Simple.scala:31)
    at bigdata.test.n4j.Simple$$anonfun$main$1.apply(Simple.scala:29)
    at scala.collection.immutable.Stream.map(Stream.scala:376)
    at bigdata.test.n4j.Simple$.main(Simple.scala:29)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-20 13:57:24

Cypher中的路径在2.0时就被更改了,所以您不能很容易地直接使用它们,因为它们不是集合。在AnormCypher中可能有一种新的路径类型,但是现在您可以将路径与relationships()nodes()一起使用。

例如,您可以这样做来提取关系:

代码语言:javascript
复制
Cypher("MATCH p = (n {id: 'n5'})-[*]-(m) RETURN relationships(p);")().map {row  =>
  println(row[Seq[NeoRelationship]]("relationships(p)"))
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23759453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档