我需要存储设备的值' OrionCB的MongoDB中具有正确类型的属性。
由于我无法执行该操作,因此我深入了解代码,发现IoTAgentUL(以及IoTAgentJSON)使用OrionCB API v1
代替API v2
。
我可以看到API v1
&#39; s updateContext向MongoDB发送数据没有它的类型,因此每个度量都存储为文本。< / p>
另一方面,我发现API v2
&#39; update entity将数据发送到MongoDB 类型。它产生的是我可以用它的类型存储属性的值,这在操作数据时会使我受益(即创建索引,排序等)。
我的问题是,是否有任何解决方法可以使用当前的物联网代理实现来解决这个问题。
答案 0 :(得分:0)
我能想象的唯一解决方法是,一旦IoT代理自动创建实体,就可以自己更新此类实体的类型。我的意思是,AFAIK,你可以更新实体的价值和类型。
更详细地说,我可以考虑订阅特定类型的所有实体(由代理创建的实体)的脚本。然后,当创建实体时,会通知脚本,该脚本会自动更新实体属性的类型。
请注意,您只需要修改属性的类型一次,就像创建实体时一样,而不是在实体的属性更新时;因此,您的脚本中需要类似于已修改实体的数组或缓存。