3

我正在使用 Cygnus 订阅 Orion Context Broker 数据。Cygnus 将数据存储在 MongoDB 上,如下所示。是否有可能将 attrValue 存储为float而不是 String 以便能够使用 Mongo 的聚合功能?

> db['cygnus_/kurapath_enocean_power_enocean'].find().pretty()
{
    "_id" : ObjectId("55e81e9631d7791085668331"),
    "recvTime" : ISODate("2015-09-03T10:19:02Z"),
    "attrName" : "power",
    "attrType" : "string",
    "attrValue" : "2085.0"
}
4

1 回答 1

1

目前不是,主要是因为 Cygnus 不(总是)接收有关实体属性的真实类型的信息。Orion 发送的实体的“类型”只是类型的描述,我的意思是,它可以是“float”或“number_of_potatos”之类的任何东西。确实,在最近版本的 Orion 中选择了一些保留字,例如“float”,以描述有效的浮点数,在这种情况下,该类型可用于在 Mongo(或任何后端)中保留有效的浮点数您使用),但许多其他属性将继续具有未知类型。因此,目前一切都被视为一个字符串。

此外,必须说另一个功能正在研究中:通知某些特殊实体的可能性,“实体模型”完全描述了一类实体。

很可能下一个即将发布的版本将在上述某些方向上实现有效的打字。

不管怎样,你看到OrionSTHSink了吗?尽管它的名字(STH,Short-Term Historic),它是一个已经在 MongoDB 中创建数据聚合的接收器。

于 2015-09-14T08:45:31.193 回答