如何在 Gremlin 3.4.0 中 return 顶点 属性 的元属性
How to return meta properties of vertex property in Gremlin 3.4.0
我的一个顶点 属性 得到了他的属性(元属性)。但是当我 return 所有顶点属性时,我只得到那个 属性 的值而不是他的属性。那可能吗?
这是我试过的:
g.V(rootID).Out()
.Has("name", splitedPath[0]).Repeat(Out().SimplePath()).Until(Has("name", splitedPath[splitedPath.Length - 1])).Out()
.Repeat(Out().SimplePath()).Until(Label().Is("Recording")).Has("name", Between(partialPropertyName, partialPropertyName + "a"))
.Project<object>("id", "label", "properties")
.By(Id())
.By(Label())
.By(ValueMap<string, object>())
.Dedup().ToList();
您需要在 "properties" By()
中再次 Project()
(以某种方式),因为 ValueMap()
没有 return 元属性。这是 Java 中的一个示例,它通过 properties()
:
gremlin> g.V(1).project('id','label','properties').
......1> by(id).
......2> by(label).
......3> by(properties().group().by(key).by(union(value(),valueMap()).fold()).fold())
==>[id:1,label:person,properties:[[name:[marko,[]],location:[san diego,[startTime:1997,endTime:2001],santa cruz,[startTime:2001,endTime:2004],brussels,[startTime:2004,endTime:2005],santa fe,[startTime:2005]]]]]
我的一个顶点 属性 得到了他的属性(元属性)。但是当我 return 所有顶点属性时,我只得到那个 属性 的值而不是他的属性。那可能吗?
这是我试过的:
g.V(rootID).Out()
.Has("name", splitedPath[0]).Repeat(Out().SimplePath()).Until(Has("name", splitedPath[splitedPath.Length - 1])).Out()
.Repeat(Out().SimplePath()).Until(Label().Is("Recording")).Has("name", Between(partialPropertyName, partialPropertyName + "a"))
.Project<object>("id", "label", "properties")
.By(Id())
.By(Label())
.By(ValueMap<string, object>())
.Dedup().ToList();
您需要在 "properties" By()
中再次 Project()
(以某种方式),因为 ValueMap()
没有 return 元属性。这是 Java 中的一个示例,它通过 properties()
:
gremlin> g.V(1).project('id','label','properties').
......1> by(id).
......2> by(label).
......3> by(properties().group().by(key).by(union(value(),valueMap()).fold()).fold())
==>[id:1,label:person,properties:[[name:[marko,[]],location:[san diego,[startTime:1997,endTime:2001],santa cruz,[startTime:2001,endTime:2004],brussels,[startTime:2004,endTime:2005],santa fe,[startTime:2005]]]]]