【问题标题】:How to return meta properties of vertex property in Gremlin 3.4.0如何在 Gremlin 3.4.0 中返回顶点属性的元属性
【发布时间】:2019-04-01 08:56:40
【问题描述】:

我的一个顶点属性得到了他的属性(元属性)。但是当我返回所有顶点属性时,我只得到该属性的值,而不是他的属性。那有可能吗?

这是我尝试过的:

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();

【问题讨论】:

    标签: gremlin azure-cosmosdb-gremlinapi


    【解决方案1】:

    您需要在它们的“属性”中再次Project() By()(以某种方式),因为ValueMap() 不返回元属性。这是一个通过properties() 实现的Java 示例:

    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]]]]]
    

    【讨论】:

    • 不错,这行得通。但是你知道为什么 C# 和 JS 的查询结果不同吗?我知道是因为类型,但仍然在 C# 中我得到了很多 IDictionary 结果。
    • 我不确定我是否遵循您的问题 - 也许您应该提出一个新问题,并提供一些您所看到的差异示例。
    • 我认为不值得问新问题,因为我不知道如何问:) 但是在 gremlin 2.6 和 3.4 中返回结果有什么区别吗?也许这就是我不明白的。
    • 2.6?我不确定你指的是什么版本。 TinkerPop 2.x 不适用于 CosmosDB。版本之间可能存在细微差别,但同样,如果没有您所指内容的示例,我不确定您看到的是什么。
    猜你喜欢
    • 2020-09-14
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 2021-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多