Как создать запрос на соединение между двумя объектами в FIWARE orion? - PullRequest
1 голос
/ 03 февраля 2020

У меня есть два объекта A (публикации) и B (пользователи) с отношениями «многие к одному», и я хочу сделать SQL как объединение, чтобы вывести список сообщений и пользователей вместе. Я попытался следующий запрос, но он возвращает только пустой массив. Я не смог найти другую документацию по этому поводу, все учебники относятся только к одному идентификатору.

https://{{orion}}/v2/entities?q=Post.createdBy==User.id&options=count,keyValues&limit=100

Я также попробовал этот вариант, но тот же результат:

https://{{orion}}/v2/entities?q=createdBy==id&options=count,keyValues&limit=100

И я проверил что есть хотя бы одна сущность, которая соответствует. Я вручную проверил

https://{{orion}}/v2/entities?q=createdBy==urn:ngsi-ld:User:78bc5cac26d1b3abe27cb2cf94b1015a3710958f 

Этот запрос выше возвращает сущность.

|      Post        |     |     User     |
|------------------|     |--------------|
| ID               |     | ID           |
| Type             |     | Type         |
| Message          |     | Username     |
| CreatedBy: UserId|

Или тип данных:

   "createdBy": {
            "type": "Relationship",
            "value": "urn:ngsi-ld:User:78bc5cac26d1b3abe27cb2cf94b1015a3710958f",
            "metadata": {}
        },

1 Ответ

1 голос
/ 16 февраля 2020

Краткий ответ: вы не можете выполнять такие операции соединения с помощью API NGSI, предоставленного Orion.

API NGSI ориентирован на управление контекстом, то есть на получение и обновление информации о контексте в форме сущностей и их атрибутов. Он не предназначен для использования в стиле SQL, что предполагает большую сложность. Orion является брокером контекста, а не реляционной базой данных;)

К счастью, такие операции соединения могут выполняться клиентом, выполняя несколько запросов к Orion.

...