Azure Cosmos db Gremlin elementMap()
Azure Cosmos db Gremlin elementMap()
我正在尝试在 cosmos db 中创建一个 gremlin 查询,其中所有顶点的属性都被展平了。
我取得的最好成绩是使用“valueMap”
查询
g.V('12345').valueMap(true))
结果
{
"id": "12345",
"label": "product",
"name": [
"product name"
],
"description": [
"productdescription"
],
}
我想要实现的目标
{
"id": "12345",
"label": "product",
"name": "product name",
"description": "productdescription"
}
看起来 elementMap 是正确的方法,但 Cosmos Db 似乎不支持它。
是否有不支持的原因或是否存在类似的解决方案?
CosmosDB 在支持 Gremlin 语言的所有方面方面往往有点落后。有解决方法。在 elementMap()
之前,典型的模式是使用 by()
调制器来 valueMap()
到 unfold()
列表:
gremlin> g.V().valueMap(true).by(unfold())
==>[id:1,label:person,name:marko,age:29]
==>[id:2,label:person,name:vadas,age:27]
==>[id:3,label:software,name:lop,lang:java]
==>[id:4,label:person,name:josh,age:32]
==>[id:5,label:software,name:ripple,lang:java]
==>[id:6,label:person,name:peter,age:35]
我不知道 CosmosDB 是否支持那个特定的 by()
调制器。如果不是那么它会变得有点丑陋:
gremlin> g.V().map(valueMap(true).unfold().group().by(keys).by(select(values).unfold()))
==>[id:1,label:person,name:marko,age:29]
==>[id:2,label:person,name:vadas,age:27]
==>[id:3,label:software,name:lop,lang:java]
==>[id:4,label:person,name:josh,age:32]
==>[id:5,label:software,name:ripple,lang:java]
==>[id:6,label:person,name:peter,age:35]
或者也许:
gremlin> g.V().map(valueMap(true).unfold().group().by(keys).by(select(values).limit(local,1)))
==>[id:1,label:person,name:marko,age:29]
==>[id:2,label:person,name:vadas,age:27]
==>[id:3,label:software,name:lop,lang:java]
==>[id:4,label:person,name:josh,age:32]
==>[id:5,label:software,name:ripple,lang:java]
==>[id:6,label:person,name:peter,age:35]
我正在尝试在 cosmos db 中创建一个 gremlin 查询,其中所有顶点的属性都被展平了。
我取得的最好成绩是使用“valueMap”
查询
g.V('12345').valueMap(true))
结果
{
"id": "12345",
"label": "product",
"name": [
"product name"
],
"description": [
"productdescription"
],
}
我想要实现的目标
{
"id": "12345",
"label": "product",
"name": "product name",
"description": "productdescription"
}
看起来 elementMap 是正确的方法,但 Cosmos Db 似乎不支持它。
是否有不支持的原因或是否存在类似的解决方案?
CosmosDB 在支持 Gremlin 语言的所有方面方面往往有点落后。有解决方法。在 elementMap()
之前,典型的模式是使用 by()
调制器来 valueMap()
到 unfold()
列表:
gremlin> g.V().valueMap(true).by(unfold())
==>[id:1,label:person,name:marko,age:29]
==>[id:2,label:person,name:vadas,age:27]
==>[id:3,label:software,name:lop,lang:java]
==>[id:4,label:person,name:josh,age:32]
==>[id:5,label:software,name:ripple,lang:java]
==>[id:6,label:person,name:peter,age:35]
我不知道 CosmosDB 是否支持那个特定的 by()
调制器。如果不是那么它会变得有点丑陋:
gremlin> g.V().map(valueMap(true).unfold().group().by(keys).by(select(values).unfold()))
==>[id:1,label:person,name:marko,age:29]
==>[id:2,label:person,name:vadas,age:27]
==>[id:3,label:software,name:lop,lang:java]
==>[id:4,label:person,name:josh,age:32]
==>[id:5,label:software,name:ripple,lang:java]
==>[id:6,label:person,name:peter,age:35]
或者也许:
gremlin> g.V().map(valueMap(true).unfold().group().by(keys).by(select(values).limit(local,1)))
==>[id:1,label:person,name:marko,age:29]
==>[id:2,label:person,name:vadas,age:27]
==>[id:3,label:software,name:lop,lang:java]
==>[id:4,label:person,name:josh,age:32]
==>[id:5,label:software,name:ripple,lang:java]
==>[id:6,label:person,name:peter,age:35]