database - OrientDB 图形数据库 - 基于连接边设置字段内容
问题描述
我正在尝试在 OrientDB 中创建一个图形数据库,用于存储有关视频游戏的一些信息。我希望根据游戏顶点与其他顶点的关系(边)填充“游戏”顶点上的一些字段。
目前我有3种顶点:
游戏
平台
公司
为了将这 3 个顶点类相互关联,我有 2 种边:
可用_开启
由开发
例如: “游戏”(顶点)是“Developed_By”(边缘)“公司”(顶点)
或者
例如: “游戏”(顶点)是“Avaialble_On”(边缘)“平台”(顶点)
“游戏”顶点有四个字段:
名称(字符串)
发布日期(字符串)
开发人员(链接列表?)
平台(链接列表?)
“游戏”顶点上的“名称”和“发布日期”是我手动设置的简单字符串。但是,我希望根据“游戏”顶点与“平台”和“公司”顶点的关系来设置“开发者”和“平台”字段。
例如:如果“游戏”顶点与任何“公司”顶点有任何传出关系“Developed_By”,则将这些“公司”顶点的“名称”字段列为“游戏”顶点的“开发者”字段的内容。
我发现我可以为游戏顶点类设置属性并添加“LINKLIST”作为类型,这允许我将属性与 Linked_Class 相关联(例如:“公司”)。
不幸的是,将此 LinkList 属性添加到“游戏”顶点似乎没有做任何事情(据我所知);查询“Game” Vertex 不会显示“devs”或“plats”字段,尽管它们出现在 Schema 中。
目前,如果我提交此查询:
SELECT FROM Game WHERE name='Myst Masterpiece Edition'
我收到了 Game Vertex,但似乎根本没有出现“devs”和“plats”LinkList 属性。
我不完全确定从这里去哪里;非常感谢任何见解。
解决方案
为了能够使用 Linklist,您应该对其进行赋值。
create class Game extends V
create property Game.name string
create property Game.releaseDate string
create property Game.devs LINKLIST
create property Game.plats LINKLIST
create class Company extends V
create property Company.name string
insert into Company(name) values ("Ordilogic System") #26:0
insert into Game(name, releaseDate) values ("Unreal"), ("1998-05-22") #17:0
update #17:0 set devs = #26:0
select from Game where name = "Unreal"
查看开发者姓名:
select devs.name as devs, releaseDate, name, out() as Developed_By from Game where name = "Unreal"
推荐阅读
- xcode - Mac 沙盒和快速测试
- sql-server - [SQL Server]关于UPDATE和INNER JOIN的问题
- c++ - 为什么 Xcode 给出这个错误而不是未声明的标识符错误?
- python - 如何将轴限制设置为围绕 matplotlib 中的一个点对称?
- java - Arraylist 错误索引超出范围或为空
- django - 从 django 模板中的小 mce 中删除底部品牌
- php - Laravel Live 电线增量减量不起作用
- perl - 无法在 Windows 10 中使用 cpan 安装 Imager::File::PNG
- c# - Xamarin 的 Device.StartTimer 重叠
- mysql - MYSQL 连接两个表并组合行值