Я тестирую и изучаю Нептун с Гремлином. Я создал несколько узлов типа User, у которых просто есть id
и email
. Если я сделаю для них необработанный запрос, я получу:
// http://my-neptune/?gremlin=g.V().hasLabel('User')
"result": {
"data": {
"@type": "g:List",
"@value": [
{
"@type": "g:Vertex",
"@value": {
"id": "u01",
"label": "User",
"properties": {
"email": [
{
"@type": "g:VertexProperty",
"@value": {
"id": {
"@type": "g:Int32",
"@value": 2051025270
},
"value": "[email protected]",
"label": "email"
}
}
]
}
}
},
{
"@type": "g:Vertex",
"@value": {
"id": "u02",
"label": "User",
"properties": {
"email": [
{
"@type": "g:VertexProperty",
"@value": {
"id": {
"@type": "g:Int32",
"@value": -374298315
},
"value": "[email protected]",
"label": "email"
}
}
]
}
}
}
]
}
Я не хочу представлять этот график с помощью visjs. Итак, я хотел бы вернуть в основном 3 свойства для каждого узла:
- ID
- Ярлык (который отображается в узле, и мне нужен формат типа
id - mail
) - Группировать (группировать узлы по цвету и форме)
Для этого я выполняю следующий запрос:
g.V()
.hasLabel('User')
.project('id', 'label', 'group')
.by(T.id)
.by(
union(id(), values('email'))
.fold()
)
.by(T.label)
Но результат оказался не таким, как ожидалось. Я получаю проекцию для label
правильно только для первого узла и пустую для остальных:
"result": {
"data": {
"@type": "g:List",
"@value": [
{
"@type": "g:Map",
"@value": [
"id",
"u01",
"label",
{
"@type": "g:List",
"@value": [
"u01",
"[email protected]"
]
},
"group",
"User"
]
},
{
"@type": "g:Map",
"@value": [
"id",
"u02",
"group",
"User",
"label",
{
"@type": "g:List",
"@value": [
// This list should not be empty
]
}
]
}
]
}
Есть идеи, почему это происходит или как я могу выполнить аналогичную задачу?
by(T.label)
- person James Render   schedule 18.12.2019by()
исправен. Я возвращаю свойства, чтобы VisJS мог нарисовать график. В VisJS свойствоlabel
имеет другое значение, чем в базе данных. В то время как база данных использует его для группировки, VisJS использует его для отображения текста для вершины. - person João Menighin   schedule 18.12.2019label
, по-видимому, без причины: s - person João Menighin   schedule 18.12.2019This list should not be empty
. Дело в том, что с этим запросом гремлин дает мне только первый правильный результат. У тех, что находятся после, проекцияlabel
пуста, и я не понимаю, почему она пуста - person João Menighin   schedule 18.12.2019Neptune 1.0.2.1
,db.r5
. По-прежнему получаю неверный результат хм ... Попробую другой запрос - person João Menighin   schedule 19.12.2019