Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从gremlin中的顶点获取id和所有属性?_Gremlin_Tinkerpop - Fatal编程技术网

如何从gremlin中的顶点获取id和所有属性?

如何从gremlin中的顶点获取id和所有属性?,gremlin,tinkerpop,Gremlin,Tinkerpop,我正在使用AWS Neptune和gremlin,我想在一个查询中获得一个顶点的id以及该顶点的所有属性。我该怎么做 我试过了 g.V().hasLabel('file').valueMap(true) 但结果是: { "fileSize": [ "9170" ], "Gremlin.Net.Process.Traversal.T": "f1fce58306f85ca7050503160640d735c9919c8fc85881d65de80bfe31b5ca24", "mimeType":

我正在使用AWS Neptune和gremlin,我想在一个查询中获得一个顶点的id以及该顶点的所有属性。我该怎么做

我试过了

g.V().hasLabel('file').valueMap(true) 
但结果是:

{ "fileSize": [ "9170" ], "Gremlin.Net.Process.Traversal.T": "f1fce58306f85ca7050503160640d735c9919c8fc85881d65de80bfe31b5ca24", "mimeType": [ "text/html" ] }
没有标签,也没有id。问题在于

project('id','label',' fileSize', 'mimeType', 'malwareSource').
    by(id).
    by(label).
    by('fileSize').
    by('mimeType').
    by('malwareSource') 


属性malwareSource有时是文件顶点的一部分,有时不是。因此,如果没有malwareSource属性,将引发异常。

有很多方法,但通常使用
valueMap()

在TinkerPop 3.4.0+中,使用
by()
的of可以更好地控制输出:

您也可以以各种方式使用
project()
,但这需要您知道所有想要获取的密钥。通常,你应该这样做

如果顶点的属性值是可选的,则只需在
by()
调制器中创建一个If-then条件:

g.V(1).
  project('id','label',' fileSize', 'mimeType', 'malwareSource').
    by(id).
    by(label).
    by('fileSize').
    by('mimeType').
    by(coalesce(values('malwareSource'),constant('N/A'))

但我不想删除或删除属性。我想把他们和IDwhoa一起放在查询结果中——我真的误解了你的问题。抱歉-更新了我的答案。g.V().hasLabel('file')。valueMap(true)返回:{“fileSize”:[“9170”],“Gremlin.Net.Process.Traversal.T:“f1fce58306f85ca75003160640d735c9919c8fc85881d65de80bfe31b5ca24”,“mimeType”:[“text/html”]}没有id,也没有labelg.V(1)。hasLabel('file').valueMap().by(unfold())。with(WithOptions.ids)在azure和Neptune中引发语法错误异常如果我需要id、标签和以下属性:fileSize、mimeType、malwareSource,如何使用project?
g.V(1).hasLabel("person").valueMap().by(unfold()).with(WithOptions.ids)
g.V(1).
  project('id','label',' fileSize', 'mimeType', 'malwareSource').
    by(id).
    by(label).
    by('fileSize').
    by('mimeType').
    by('malwareSource')
g.V(1).
  project('id','label',' fileSize', 'mimeType', 'malwareSource').
    by(id).
    by(label).
    by('fileSize').
    by('mimeType').
    by(coalesce(values('malwareSource'),constant('N/A'))