如何在 FIWARE orion 中的两个实体之间创建连接查询?

How to create a join query between two entities in FIWARE orion?

我有两个具有多对一关系的实体 A(帖子)和 B(用户),我想做一个 SQL 连接来一起列出帖子和用户。 我尝试了以下查询,但它只是 returns 一个空数组。 我找不到与此相关的任何其他文档,所有教程仅引用一个 id。

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 

这个查询上面returns一个实体。

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

In orion 数据类型:

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

简短的回答是,您不能使用 Orion 提供的 NGSI API 进行这种连接操作。

NGSI API面向上下文管理,即以实体及其属性的形式检索和更新上下文信息。它不是设计成 SQL 风格的语言,这会涉及很多复杂性。 Orion 是上下文代理,而不是关系数据库 ;)

幸运的是,这种连接操作可以由客户端完成,对 Orion 进行多次查询。