簡體   English   中英

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 是 go 的正確方法,但 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]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM