Fiware 检查ContextBroker中是否已存在实体

Fiware 检查ContextBroker中是否已存在实体,fiware,fiware-orion,Fiware,Fiware Orion,最近,我正在开发一个应用程序,它允许用户从ContextBroker、Cosmos等处查询enities。应用程序的一个功能是初始化一个实体,该实体将被连接的对象用来存储数据 创作很好,但我有一个小问题 正如Orion ContextBroker文档中所述,当实体已经存在时,追加操作被解释为更新(我真的不明白为什么)。这是一个场景,用户有一个名为Room1的实体,传感器给他数据并存储。有一天,他想创建一个新实体,但出现了一个错误,并将其命名为Room1。Room1中的所有当前数据将重置为我在应用

最近,我正在开发一个应用程序,它允许用户从ContextBroker、Cosmos等处查询enities。应用程序的一个功能是初始化一个实体,该实体将被连接的对象用来存储数据

创作很好,但我有一个小问题

正如Orion ContextBroker文档中所述,当实体已经存在时,追加操作被解释为更新(我真的不明白为什么)。这是一个场景,用户有一个名为Room1的实体,传感器给他数据并存储。有一天,他想创建一个新实体,但出现了一个错误,并将其命名为Room1。Room1中的所有当前数据将重置为我在应用程序中输入的默认值

这里是我的问题,除了在创建之前在应用程序中进行手动查询(这将需要更长的时间来处理)之外,是否有其他方法来检查实体是否已经存在

谢谢你阅读我的问题,祝你度过愉快的一天

纪尧姆·乔丹

目前(Orion 0.22.0),唯一的方法是您提到的方法:检查实体是否已经存在并正在执行查询

以这种方式实现更新的原因是,对于许多用例,所需的行为正是oposite:如果实体以前不存在,并且“append或update”语义工作正常,则客户端不希望得到错误。不幸的是,让一个用例快乐会让另一个用例悲伤:(

最好的解决方案是使此行为可配置。我们现在正在定义Orion实现的FIWARE NGSI API的新版本,包括用于设置行为的URL选项,例如,
?options=append
设置“严格附加”语义(opossite设置为“附加或更新”语义)


编辑:Orion 0.24.0引入了,如果要添加的属性已经存在,则返回错误。

感谢您的回答,我现在在创建之前进行查询检查。我期待着ContextBroker;)的下一次更新。Orion 0.24.0(将于2015年9月初发布)包括APPEND\u STRICT。有关更多信息,请参见编辑的答案。