gremlin - Gremlin:如何获取来自顶点的属性“id”?
问题描述
我是新的 Gremlin,并试图仅从示例图中选择几个属性from
和to
顶点以及顶点的id
属性from
。这是我创建图表的方式:
g.addV('asset').property(id, 'a1').property('ip', '127.4.8.51').property('scanDate', '2020-09-10').property('repoId', 1)
g.addV('asset').property(id, 'a2').property('ip', '127.4.8.55').property('scanDate', '2020-09-20').property('repoId', 1)
g.addV('asset').property(id, 'a3').property('ip', '127.4.8.57').property('scanDate', '2020-09-21').property('repoId', 1)
g.addV('asset').property(id, 'a4').property('ip', '127.4.10.36').property('scanDate', '2020-09-12').property('repoId', 2)
g.addV('asset').property(id, 'a5').property('ip', '127.4.10.75').property('scanDate', '2020-09-14').property('repoId', 2)
g.addV('repo').property(id, 'r1').property('repoName', 'repo1').property('assetAge', 10).property('repoId', 1)
g.addV('repo').property(id, 'r2').property('repoName', 'repo2').property('assetAge', 9).property('repoId', 2)
g.V('a1').addE('has').to(g.V('r1'))
g.V('a2').addE('has').to(g.V('r1'))
g.V('a3').addE('has').to(g.V('r1'))
g.V('a4').addE('has').to(g.V('r2'))
g.V('a5').addE('has').to(g.V('r2'))
以下是我获得asset.scanDate
( from
vertex) 和repo.assetAge
( to
vertex) 属性的方法:
gremlin> g.V().hasLabel("asset").as("a").out("has").as('b').select('a', 'b').by('scanDate').by('assetAge')
==>{a=2020-09-20, b=10}
==>{a=2020-09-12, b=9}
==>{a=2020-09-21, b=10}
==>{a=2020-09-14, b=9}
==>{a=2020-09-10, b=10}
我希望结果如下所示:
==>{id=a2, scanDate=2020-09-20, assetAge=10}
==>{id=a4, scanDate=2020-09-12, assetAge=9}
==>{id=a3, scanDate=2020-09-21, assetAge=10}
==>{id=a5, scanDate=2020-09-14, assetAge=9}
==>{id=a1, scanDate=2020-09-10, assetAge=10}
任何帮助是极大的赞赏; 谢谢。
解决方案
您可以使用Gremlin 中的project()步骤完成此操作,如下所示
g.V().
hasLabel("asset").as("a").
out("has").
project('id', 'a', 'b').
by(select('a').id()).
by(select('a').values('scanDate')).
by(values('assetAge'))
推荐阅读
- logstash - ELK 读取和存储 log4j 日志
- git - 如果在用户计算机上签出,则监控代码仓库
- javascript - JS加载内容(Yandex Map)和android webview
- git - 无法将本地 git(在 AWS Ubuntu 上)与远程(在 BitBucket 上)同步
- javascript - 带有 Ionic 的 Google 表格 API
- upgrade - 如何将 splunk 6.1.4 升级到 6.5 有许可证
- android - 我的 RecyclerView ContextMenu 不显示
- c# - 通过 FtpWebRequest 获取文件时丢失换行符
- gnuplot - 如何在gnuplot的一行中做几个键
- python - python脚本,输出重定向信号以将浏览器指向目标登录页面