gremlin - Gremlin:如何识别哪些属性属于哪些边
问题描述
我有一个简单的图,有两个顶点,ID 为“a”和“b”。
我已将两条边从“a”分配到“b”,其中每条边都有标签 =“foo”
[1] gremlin> gV('a').outE()
==>e[f4b4b71d-ca98-5302-3eb1-7f99a7e74081][a-foo->b]
==>e[98b4b71d-c8c9-4ca2-9fbe-2f58e33d25e4][a-foo->b]
每个边都有一个 key = "committed" 的属性。
[2] gremlin> gE().properties()
==>p[提交->2]
==>p[提交->1]
我的问题:我想枚举边缘并返回它们各自的属性,如步骤 [2] 中所示,但是如何将结果中的边缘属性匹配回它们各自的边缘(id)?我得到的只是属性键值分配;没有与边缘 ID 相关的内容。
谢谢,
乔尔·斯蒂维克
解决方案
您应该避免返回顶点和边等图形元素,而是将结果转换为您需要的特定形式。你可以通过多种方式做到这一点。在这种情况下project()
效果很好:
gremlin> g.V().outE().project('id','weight').by(id).by('weight')
==>[id:9,weight:0.4]
==>[id:7,weight:0.5]
==>[id:8,weight:1.0]
==>[id:10,weight:1.0]
==>[id:11,weight:0.4]
==>[id:12,weight:0.2]
或者你可以使用valueMap()
- 在 3.4.0 你有with()
语法:
gremlin> g.V().outE().valueMap('weight').with(WithOptions.tokens)
==>[id:9,label:created,weight:0.4]
==>[id:7,label:knows,weight:0.5]
==>[id:8,label:knows,weight:1.0]
推荐阅读
- java - 如何修复线程“AWT-EventQueue-0”java.lang.NullPointerException中的异常?
- ios - 'NSInvalidArgumentException',原因:'-[UISearchBar searchTextField]:无法识别的选择器发送到实例
- swift - 在工作表中使用 NavigationLink 后的两个 UINavigationController
- reactjs - 材质 UI 导致 __WEBPACK_IMPORTED_MODULE_4_react___default.a.memo is not a function 错误
- linux - 为什么 sed 命令中 g 关键字之前有 2 个正斜杠?
- php - Yii2 中的测试驱动开发不适用于课程
- python - 如何在python中的元组列表中有效地获取元素
- angular - 无法绑定到“matRowDefColumns”,因为它不是“mat-row”的已知属性
- vue.js - Vue.js 和数据存储在文本/脚本文件中
- reactjs - 错误:输入是一个空元素标记,既不能有 `children`,也不能使用 `dangerouslySetInnerHTML`