FIWARE Orion:更改实体类型

 收藏

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

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

回复
  • 果粒、橙 回复

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

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

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

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

    EDIT: dateModified and dateCreation attributes and metadata are designed to be managed by Context Broker automatically. Clients cannot modify them, they are "read-only". The idea is that a given context consumer client (which, in principle, is independent of the context producer client creating/updating the entity) has a trustable timestamp that nobody could alter.

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

    1. 使用您的自定义时间戳属性和元数据。创建新实体时,可以将它们“移动”到新实体。但是,CB不会自动维护它们,因此您的应用程序必须这样做。
    2. 使用API​​之外的流程,在数据库级别移动实体。但是,这可能很复杂,因为您需要直接访问数据库。

    EDIT2: for the second case (DB based process) take into account the Orion DB model. In particular:

    • _id.type is for the entity type
    • creDate is for the entity creation date
    • modDate is for the entity modification date
    • attrs.A.creDate is for the attribute A creation date
    • attrs.A.modDate is for the attribute A modification date