OrientDB:可以动态地向现有类添加/设置字段吗?

时间:2018-02-09 14:10:02

标签: orientdb

OrientDB初学者在这里!

我正在设置图表来模拟社交网络。我已经开始创建一个新类Person,并且我想要输入几个人。

但我的问题是所有字段都不会一直存在。我要输入的第一个人有FirstName和FamilyName。第二个条目有这两个,但也有年龄。

但是当我跑步时

select from Person

我的结果窗格仅显示我的两条记录的FirstName和FamilyName。我的假设是,我会看到第一个条目的所有三个列,FirstName,FamilyName和Age with Age为空。

所以我假设不接受动态添加新的“字段”或属性。

如果在开始之前我不知道所有可能的字段(没有架构),那么实现添加额外属性的最佳做法是什么呢?

1 个答案:

答案 0 :(得分:3)

如果您首先执行以下语句:

create class Person extends V
create vertex Person set FirstName = "Jon", FamilyName = "Doe"
create vertex Person set FirstName = "Johanna", FamilyName = "Doe", Age = 30

然后执行select,输出将是这样的:

orientdb {db=DoctorDB}> select * from Person


+----+-----+------+---------+----------+----+
|#   |@RID |@CLASS|FirstName|FamilyName|Age |
+----+-----+------+---------+----------+----+
|0   |#91:0|Person|Jon      |Doe       |    |
|1   |#92:0|Person|Johanna  |Doe       |30  |
+----+-----+------+---------+----------+----+ 

然后:

update #92:0 set Sex = "Female"

现在选择输出:

orientdb {db=DoctorDB}> select * from Person

+----+-----+------+---------+----------+----+------+
|#   |@RID |@CLASS|FirstName|FamilyName|Age |Sex   |
+----+-----+------+---------+----------+----+------+
|0   |#91:0|Person|Jon      |Doe       |    |      |
|1   |#92:0|Person|Johanna  |Doe       |30  |Female|
+----+-----+------+---------+----------+----+------+