Fiware Can';t存储属性';使用IoTAgentUL正确输入s值
我需要在OrionCB的MongoDB中存储具有正确类型的设备属性值 由于无法执行该操作,我深入代码,发现IoAgentTul(以及IoAgentJSON)使用OrionCB的Fiware Can';t存储属性';使用IoTAgentUL正确输入s值,fiware,fiware-orion,Fiware,Fiware Orion,我需要在OrionCB的MongoDB中存储具有正确类型的设备属性值 由于无法执行该操作,我深入代码,发现IoAgentTul(以及IoAgentJSON)使用OrionCB的API v1,而不是API v2 正如我所看到的,API v1将数据发送到MongoDB,而不使用它的类型,因此每个度量值都存储为文本 另一方面,我发现APIv2使用其类型将数据发送到MongoDB。它使我可以用属性的类型来存储属性的值,这在处理数据(即创建索引、排序等)时对我有利 我的问题是,使用当前的物联网代理实现是否
API v1
,而不是API v2
正如我所看到的,API v1将数据发送到MongoDB,而不使用它的类型,因此每个度量值都存储为文本
另一方面,我发现APIv2
使用其类型将数据发送到MongoDB。它使我可以用属性的类型来存储属性的值,这在处理数据(即创建索引、排序等)时对我有利
我的问题是,使用当前的物联网代理实现是否有任何解决方法。我能想象的唯一解决方法是,一旦物联网代理自动创建实体,您自己更新此类实体的类型。我的意思是,好的,你可以更新实体的值和类型 更详细地说,我可以考虑订阅特定类型的所有实体(由代理创建的实体)的脚本。然后,当创建实体时,会通知脚本,脚本会自动更新实体属性的类型
请注意,您只需要在创建实体时修改属性的类型一次,而不是在更新实体的属性时;因此,您的脚本中需要一个数组或已修改实体的缓存。在我看来,保存为文本的类型没有任何问题。使用这些值时,只需进行测试。如果已经知道,则不需要进行测试。如果应用程序不知道它正在处理什么类型的数据,只需进行测试以查看类型并做出具体决定。