FIWARE Orion: изменить тип объекта

В Орионе можно ли изменить тип сущности? Связанный вопрос, можно ли изменить тип атрибута?

Изменить: изменение типа объекта не представляется возможным. Так что создание новой сущности кажется решением. Но как сохранить dateCreated и dateModified?


person cdupont    schedule 18.05.2019    source источник


Ответы (1)


В Орионе можно ли изменить тип сущности

Не прямо. Идентификатор объекта и тип объекта неизменны. Однако вы можете создать копию сущности с новым типом, а затем удалить старую сущность. Это будет иметь тот же эффект.

Связанный вопрос, можно ли изменить тип атрибута?

Да, это так. При обновлении атрибута можно изменить не только значение, но и тип (и метаданные).

РЕДАКТИРОВАТЬ: атрибуты и метаданные dateModified и dateCreation предназначены для автоматического управления контекстным брокером. Клиенты не могут их изменять, они доступны только для чтения. Идея состоит в том, что данный клиент-потребитель контекста (который, в принципе, не зависит от клиента-производителя контекста, создающего / обновляющего объект) имеет надежную метку времени, которую никто не может изменить.

Итак, в основном у вас есть две альтернативы:

  1. Используйте свои собственные атрибуты отметок времени и метаданные. Их можно «переместить» в новую сущность при ее создании. Однако CB не будет поддерживать их автоматически, поэтому ваше приложение должно будет это делать.

  2. Используйте процесс вне API, перемещая сущность на уровень БД. Однако это может быть сложно, так как вам нужен прямой доступ к БД.

EDIT2: для второго случая (процесс на основе БД) примите во внимание Модель Orion DB. Особенно:

  • _id.type для типа объекта
  • creDate - дата создания объекта
  • modDate - дата изменения сущности
  • attrs.A.creDate для атрибута Дата создания
  • attrs.A.modDate для атрибута Дата изменения
person fgalan    schedule 20.05.2019
comment
Копирование объекта кажется хорошим решением. Однако эта операция не сохраняет dateCreated и dataModified. - person cdupont; 28.05.2019
comment
Да, похоже, процесс вне API - лучший вариант, так как у меня есть доступ к БД. Можно ли скопировать БД Ориона и переименовать там типы? - person cdupont; 29.05.2019
comment
Да, это должно быть возможно, но для этого требуются некоторые знания MongoDB, выходящие за рамки этого вопроса. Тем не менее, я добавил несколько подсказок в разделе EDIT2 своего ответа, которые могут помочь в этом процессе. - person fgalan; 30.05.2019