当执行查询g.V()。ToList()时,如何使gremlin返回顶点的属性?当前返回未定义

时间:2019-06-13 07:06:23

标签: javascript c# gremlin gremlin-server gremlinjs

我有一个gremlin服务器,其中的数据由某些c#代码推送(如下所示),它基本上是对类的属性进行迭代并将这些属性添加到图形中。

我使用javascript中的gremlin与该gremlin服务器通信。当我执行g.V()。ToList时,我将所有顶点作为具有id和label的json对象数组。但是属性未定义:

  Vertex { id: 50543, label: 'asdad', properties: undefined },
  Vertex { id: 51569, label: 'b', properties: undefined },
  Vertex { id: 50547, label: 'c', properties: undefined },
  Vertex { id: 50551, label: 'd', properties: undefined },
  Vertex { id: 50555, label: 'e', properties: undefined },
  Vertex { id: 50559, label: 'f', properties: undefined },
  Vertex { id: 50563, label: 'g', properties: undefined },
  Vertex { id: 50567, label: 'h', properties: undefined },
  ... 151 more items ]

但是当我执行g.V()。properties()时,我看到的属性列为顶点属性:

 VertexProperty {
    id: 52349,
    label: 'E',
    value: 'P',
    key: 'E',
    properties: undefined },
  VertexProperty {
    id: 52351,
    label: 'id',
    value: '187516',
    key: 'id',
    properties: undefined },
  VertexProperty {
    id: 52350,
    label: 'Name',
    value: 'b',
    key: 'Name',
    properties: undefined },
  VertexProperty {
    id: 52353,
    label: 'E',
    value: 'P',
    key: 'E',
    properties: undefined },

上面显示了属性已添加,但在我进行的第一个调用中我需要它们。

 g.AddV(v1.Name).Next();


               PropertyInfo[] properties = v1.GetType().GetProperties();
               foreach (PropertyInfo property in properties)
               {

                   var v = g.V().HasLabel(v1.Name).Property(property.Name, property.GetValue(v1)).Next();
               }

应该显示预期的属性,但是它们是未定义的。

1 个答案:

答案 0 :(得分:0)

我认为这与要求here的问题相同。

您可以尝试:

g.V().valueMap(true).toList()