Orion Context Broker 实体是否可以具有两个名称相同但类型不同的属性?

Can a Orion Context Broker entity have two attributes with the same name but different type?

Orion Context Broker 实体是否可以具有两个名称相同但类型不同的属性?

如果是,是Orion控制的吗?创建这样的实体是否返回错误?

如果不是,当便利操作试图获取 2 个属性之一的值时会发生什么(AFAIK,操作中未传递属性类型)。

从 Orion 0.17.0 开始,类型不再用于标识属性。因此,属性由名称加上(可选)metadata ID 来标识。在这个答案的其余部分,我将假定版本 >=0.17.0。

Orion 在处理创建实体或在现有实体上附加属性的操作时不控制违反该规则。在那些情况下,只有一个具有相同标识的属性实例被存储在数据库中,其他的被忽略。完全不建议客户端执行此类操作(将来,Orion 可能会检查该条件并 return 向客户端发送错误)。

考虑到上述段落并考虑 当便利操作试图获取 2 个属性之一的值时会发生什么(据我所知,操作中未传递属性类型)? 请注意,这种情况不会发生。我的意思是,Orion DB 永远不会存储两个具有与同一实体关联的相同标识的属性。

关于元数据 ID 的一些附加评论:我不建议使用元数据 ID,因为任何潜在的 ID 都可以包含在名称中,这样您的客户端就会变得更加简单,例如如果您使用 name=temperature::outside 或任何其他命名空间技术,则不需要 name=temperatureid=outside 属性。