【问题标题】:Gremlin query to retrieve count and data in the same responseGremlin 查询以在同一响应中检索计数和数据
【发布时间】:2023-09-05 08:56:01
【问题描述】:

我正在寻求有关高效 gremlin 查询的帮助,该查询以预期格式返回数据。

数据结构:

g.V('user').property('id','1').property('name','name 1').property('city','city1')
g.V('user').property('id','2').property('name','name 2').property('city','city2')
g.V('user').property('id','3').property('name','name 3').property('city','city3')
g.V('user').property('id','4').property('name','name 4').property('city','city4')

预期输出:

{
  "count" : 4,
  "users : [
     { 
       "id" : "1",
       "name" : "name 1"
     },
     { 
       "id" : "2",
       "name" : "name 2"
     },
     { 
       "id" : "3",
       "name" : "name 3"
     },
     { 
       "id" : "4",
       "name" : "name 4"
     }
  ]
 }

非常感谢您对查询的任何帮助。

【问题讨论】:

    标签: azure-cosmosdb gremlin tinkerpop3


    【解决方案1】:

    你可以试试:

    g.V().hasLabel('user')
    .project('id', 'name').by(id()).by(values('name')).fold()
    .project('count', 'users').by(count(local)).by()
    

    【讨论】:

    • 谢谢,但 Cosmos DB Gremlin API 尚不支持 elementMapdocs.microsoft.com/en-us/azure/cosmos-db/gremlin-support
    • 所以您可以使用曾经支持的valueMap(true)valueMap().with(WithOptions.tokens)
    • valueMap 正在工作。但是响应具有来自user 顶点的所有属性。我只想要响应 json 中的 idname 属性。
    • 我用正确的数据结构更新了问题。
    • 您可以运行valueMap(true, 'name'),这样您将获得 id、label 和 name。或者你可以使用project(我更新了答案)