FIWARE Orion:更改实体类型

时间:2019-05-18 20:16:35

标签: fiware-orion

在Orion中,可以更改实体的类型吗? 相关问题,可以更改属性的类型吗?

编辑:似乎不可能更改实体的类型。因此,创建一个新实体似乎是一种解决方案。但是如何保留dateCreated和dateModified?

1 个答案:

答案 0 :(得分:1)

  

在Orion中,可以更改实体的类型

不直接。实体ID和实体类型是不可变的。但是,您可以使用新类型创建实体的副本,然后删除旧实体。这实际上将具有相同的效果。

  

相关问题,可以更改属性的类型吗?

是的。更新属性时,不仅可以更改值,还可以更改类型(和元数据)。

编辑dateModifieddateCreation属性和元数据被设计为由Context Broker自动管理。客户端无法修改它们,它们是“只读”的。想法是给定的上下文消费者客户端(原则上独立于创建/更新实体的上下文生产者客户端)具有可信任的时间戳,没有人可以更改。

因此,您基本上有两种选择:

  1. 使用自定义时间戳属性和元数据。创建新实体时,可以将它们“移动”到新实体。但是,CB不会自动维护它们,因此您的应用程序必须这样做。

  2. 使用API​​超出流程,将实体移到数据库级别。但是,这可能很复杂,因为您需要直接访问数据库。

EDIT2 :对于第二种情况(基于数据库的过程),请考虑Orion DB model。特别是:

  • _id.type用于实体类型
  • creDate用于实体创建日期
  • modDate用于实体修改日期
  • attrs.A.creDate用于属性A创建日期
  • attrs.A.modDate用于属性A修改日期