Neo4j.rb中每条记录的多种类型

时间:2015-03-03 17:27:11

标签: neo4j.rb

我有一个数据库,当前表示为一组YAML文件(每个文件一个记录)。我想把它移植到Neo4j。每条记录都有一个属性“type”,它存储了一系列类型。我希望每种类型都有一个模块(包括ActiveNode)。然后,每个节点对象将扩展与其类型对应的模块。我能想到用neo4j.rb实现它的唯一方法是为每个现有的类型组合生成一个类,并在类中包含相应的类型模块。有没有更好的方法来实现这一目标?

1 个答案:

答案 0 :(得分:2)

更具体的例子可能有所帮助。这些类型是否有自然的层次结构?

多个标签的类层次结构已经支持了一段时间,但我在最近几天对主分支进行了一些更改,以使其更顺畅地工作。你应该可以这样做:

class Person
  include Neo4j::ActiveNode
end

class Author < Person
end

class Collaborator < Person
end

class Software
  include Neo4j::ActiveNode
end

class Application < Software
end

class Library < Software
end

如果您执行ChildType.create,则会创建包含ParentTypeChildType标签的节点。如果查询加载具有两个标签的节点,则将使用ChildType模型类。

我们还谈到了加载模块来制作多个标签的能力,虽然我们无法想到一个很好的例子,所以我欢迎一个。