Gremlin 如何在janusgraph中将数组设置为属性?

Gremlin 如何在janusgraph中将数组设置为属性?,gremlin,janusgraph,tinkerpop3,gremlin-server,gremlinpython,Gremlin,Janusgraph,Tinkerpop3,Gremlin Server,Gremlinpython,我想将顶点和边的属性设置为列表值。 我用的是janusgraph。 Gremlin-python下面是一个使用Gremlin-python创建顶点的示例,该顶点使用属性键mySet将3个值存储为一个集合。请注意,在使用gremlin python时,一些gremlin步骤的名称后面有一个下划线,以避免与同名python步骤发生冲突 result = ( g.addV('test'). property(Cardinality.set_,"mySet",1).

我想将顶点和边的属性设置为列表值。 我用的是janusgraph。
Gremlin-python

下面是一个使用Gremlin-python创建顶点的示例,该顶点使用属性键
mySet
将3个值存储为一个集合。请注意,在使用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]}

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

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

mgmt=graph.openManagement();mgmt.makePropertyKey('myProperty')。数据类型(字符串)。基数(列表)。make();mgmt.commit()

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

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

如果您想动态地创建模式,您可以在一个gremlin调用中完成。您提供了一个以前从未使用过的新属性键(默认情况下,现有键的基数为单,并且不接受多个值)。您必须向gremlin说明所有新插入值的基数,如下所示:

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

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

如果您是通过gremlinpython实现这一点的,那么第二个选项应该像本机代码一样直接工作。第一个选项要求您通过客户端连接发送架构命令:

来自gremlin\u python.driver.client导入客户端

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

console_command_string=“”mgmt=graph.openManagement();mgmt.makePropertyKey('myProperty')。数据类型(字符串)。基数(列表)。make();mgmt.commit();”“”

client.submit(控制台\u命令\u字符串)


client.close()

您看过列表并设置基数了吗?此外,只能在顶点上指定“多重属性”,而不能在边上指定。我如何在控制台上实现它?您是在询问Python控制台还是Gremlin控制台?