我正在尝试为特定的顶点类型添加属性。假设我的图表架构中有person
和car
个顶点类型,如何才能将name
和birthday
属性仅添加到person
顶点?
创建firstName
属性的示例:
graph.openManagement().makePropertyKey('firstName')
.dataType(String.class).cardinality(Cardinality.SINGLE).make();
这里我正在创建顶点的新属性但是如何将其限制为特定类型的顶点?
提前致谢。
答案 0 :(得分:6)
使用新的JanusGraph 0.3.0版本,现在可以创建完全符合您需要的架构约束。由于默认情况下禁用了这些约束,因此首先需要将schema.constraints
设置为true
来启用它们。现在您可以创建一个这样的约束:
mgmt = graph.openManagement()
person = mgmt.makeVertexLabel('person').make()
name = mgmt.makePropertyKey('firstName').dataType(String.class).
cardinality(Cardinality.SINGLE).make()
mgmt.addProperties(person, name)
mgmt.commit()
表示firstName
属性键只能用于标签为person
的顶点。
当您现在尝试将此属性添加到具有不同标签的顶点时,它将引发异常:
gremlin> g.addV('car').property('firstName','test')
Property Key constraint does not exist for given Vertex Label [car] and property key [firstName].
有关详细信息,请参阅official JanusGraph documentation on schema constraints。
我更新了我之前所说的答案,他们现在还不能进行架构限制。