-1

我想将顶点和边的属性设置为列表值。我正在使用janusgraph。小鬼蟒

4

3 回答 3

3

这是一个使用 gremlin-python 创建一个顶点的示例,该顶点使用属性 key 存储为 Set 的 3 个值mySet。请注意,在使用 gremlin-python 时,某些 Gremlin 步骤的名称后带有下划线,以避免与同名的 Python 步骤发生冲突。

result = ( 
    g.addV('test').
        property(Cardinality.set_,"mySet",1).
        property(Cardinality.set_,"mySet",2).
        property(Cardinality.set_,"mySet",3).
      valueMap().
      next()
)

print(result)

{'mySet': [1, 2, 3]}
于 2020-04-27T14:16:27.717 回答
1

在 JanusGraph 中,建议预先创建模式。LIST 基数意味着您需要一个数组值键。

在 gremlin 控制台中,您可以执行以下操作:

mgmt = graph.openManagement(); mgmt.makePropertyKey('myProperty').dataType(String).cardinality(LIST).make(); mgmt.commit();

然后在 gremlin 中链接属性函数:

g.addV().property('myProperty', 'val1).property('myProperty','val2')

如果您想动态创建模式,您可以在一个 gremlin 调用中完成此操作。您提供了一个以前从未使用过的新属性键(现有键默认具有基数 SINGLE 并且不接受多个值)。您必须告知 gremlin 您所有新插入的值的基数,如下所示:

g.addV().property(list,'myNewProperty', 'val1').property(list,'myNewProperty','val2')

请注意我每次都必须添加 list 关键字。

如果您通过 gremlin-python 执行此操作,则第二个选项应该像本机代码一样直接工作。第一个选项要求您通过客户端连接发送模式命令:

from gremlin_python.driver.client import Client

client = Client('ws://urlToServer:8182/gremlin','g')

console_command_string = """mgmt = graph.openManagement(); mgmt.makePropertyKey('myProperty').dataType(String).cardinality(LIST).make(); mgmt.commit();"""

client.submit(console_command_string)

client.close()

于 2021-04-09T13:14:27.107 回答
0

通过将属性基数设置为 set 或 list,您可以将多个值附加到属性键。

找到下面的 java 代码片段。

janusGraphVertex.property(VertexProperty.Cardinality.set, "hobbies", "cricket");
janusGraphVertex.property(VertexProperty.Cardinality.set, "hobbies", "football");
janusGraphVertex.property(VertexProperty.Cardinality.set, "hobbies", "tennis");

参考链接

于 2022-01-30T14:31:52.100 回答