FIWARE Orion:更改实体类型

FIWARE Orion: change entity type

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

编辑:似乎无法更改实体的类型。所以创建一个新的实体似乎是一个解决方案。但是如何保留 dateCreated 和 dateModified?

In Orion, is it possible to change the type of an entity

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

Related question, it is possible to change the type of an attribute?

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

编辑dateModifieddateCreation 属性和元数据旨在由 Context Broker 自动管理。客户不能修改它们,它们是"read-only"。这个想法是给定的上下文消费者客户端(原则上独立于上下文生产者客户端 creating/updating 实体)具有一个任何人都无法更改的可信时间戳。

所以,你基本上有两个选择:

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

  2. 使用 out-of-API 进程,在数据库级别移动实体。但是,这可能很复杂,因为您需要直接访问数据库。

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

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