我是所有图形数据库人员的新手,并且在进行一些基本查询时遇到了困难。 我正在使用Gremlin和Kotlin连接到AWS Neptune。 我想获取所有的顶点属性,包括ID。
我添加了一个顶点:
g.addV("foo")
.property("name", "Foo 1")
.next()
并检索我尝试过的属性:
g.V()
.hasLabel("foo")
.valueMap<String>()
.by(unfold<String>())
.forEach {
// val name = it["name"] -> works great!
// val id = it["id"] -> doesn't exist
}
在第一种方法中,我为每个项目都获得了一个映射,但是该映射不包含ID。
g.V()
.hasLabel("foo")
.forEach {
// it is an ReferenceVertex that has an ID!
val name = it.property<String>("name") // This returns an EmptyVertexProperty, so I can't read the name
}
我正在使用
<dependency>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>gremlin-driver</artifactId>
<version>3.4.4</version>
</dependency>
奖励问题
我无法弄清楚(在文档中也找不到)valueMap
和unfold
方法上的泛型是做什么的。 Kotlin不允许我省略它们(就像我在某些Java代码中看到的那样??),但是例如,将它们更改为Int
并不会改变这些示例的结果……所以什么是为了? D:
谢谢!
答案 0 :(得分:0)
如果要获取具有所有其他属性的ID,则需要运行valueMap().with(WithOptions.tokens)
,也可以使用elementMap()
。