Gremlin -如何返回沿节点结果的边的属性?



我想知道如何添加到结果的边的属性,链接到另一个节点

我使用node.js通过Gremlin对海王星数据库进行查询。然后我通过API将结果发送给Javascript。

let data = [];
const id_vertex = "1"
data = await g.V().has(id,id_vertex)
.out()
.valueMap()
.with_('~tinkerpop.valueMap.tokens'))
.toList();

数据是这样的:

[
{
name: [ 'Colt Bogan II' ],
label: 'User',
notification: [ 'Both' ],
usercity: [ 'Wardburgh' ],
id: '1',
RegisteredDate: [ '2010-10-14' ]
},
{
name: [ 'Webster Sanford' ],
label: 'User',
notification: [ 'SMS' ],
usercity: [ 'Nanniefurt' ],
id: '2',
RegisteredDate: [ '2006-02-03' ]
}
]

然后我使用JSON。stringify使我发送回javascript的内容主体

body: JSON.stringify(data)
"body": 
"[{"name":["Colt Bogan II"],"label":"User","notification":["Both"],"usercity":["Wardburgh"],"id":"1","RegisteredDate":["2010-10-14"]},
{"name":["Webster Sanford"],"label":"User","notification":["SMS"],"usercity":["Nanniefurt"],"id":"2","RegisteredDate":["2006-02-03"]}]"

我想在主体中添加连接id为id_vertex的节点的边的属性(当返回该节点的所有属性时)。无论是当我做Gremlin查询或之后。假设我感兴趣的边缘属性是color,那么最后我想让body看起来像这样:

"body": 
"[{"edgeColor":["Green"], "name":["Colt Bogan II"],"label":"User","notification":["Both"],"usercity":["Wardburgh"],"id":"1","RegisteredDate":["2010-10-14"]},
{"edgeColor":["Blue"], "name":["Webster Sanford"],"label":"User","notification":["SMS"],"usercity":["Nanniefurt"],"id":"2","RegisteredDate":["2006-02-03"]}]"

如果有帮助的话,我还设置了从一个节点到另一个节点的最大边值

如果你稍微修改一下你的查询,你可以在结果中包含边缘属性。

let data = [];
const id_vertex = "1"
data = await g.V().has(id,id_vertex)
.outE()
.project('edge','vertex')
.by(valueMap('edgeColor'))
.by(inV().valueMap().with_('~tinkerpop.valueMap.tokens'))
.toList();

最新更新