kotlin - 如何获取所有带有 id 的属性
问题描述
我对所有图形数据库的东西都很陌生,而且我很难处理一些基本的查询。我正在使用 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
,例如,不会改变这些示例的结果......那么它有什么用呢?丁:
提前致谢!
解决方案
如果您想获得具有您需要运行的所有其他属性的 Id,valueMap().with(WithOptions.tokens)
或者您可以使用elementMap()
.
推荐阅读
- swift - 如何快速附加到数组作为扩展
- typescript - 对象可能是“未定义”,即使它不可能
- javascript - 如何使活动菜单项突出显示?
- python - SQLAlchemy - 从列表中查找关系包含至少一个元素的项目
- survival-analysis - 我应该如何在 Kaplan Meier 生存分析中报告时变协变量的“组合风险比”
- dns - 我可以拥有一个只有一个名称而没有 .com 或任何结尾的域名吗
- grafana - 在 Grafana 上格式化长数字
- php - PHP、FTP和源代码控制系统
- python - 找到两个相交的凸包的内点
- authentication - 在 Blazor 中配置基于策略的授权