我正在使用 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"
}
最佳答案
目前没有,主要是因为 Cygnus 不会(总是)接收有关实体属性真实类型的信息。 Orion 发送的实体“类型”只是类型的描述,我的意思是,它可以是“float”或“number_of_potatos”之类的任何东西。的确,在 Orion 的最新版本中选择了一些保留字,例如“float”,以描述有效的 float ,在这种情况下,该类型可用于在 Mongo(或任何后端)中保留有效的 float 你使用),但许多其他属性将继续具有未知类型。因此,目前一切都被视为字符串。
此外,必须说另一个正在研究的特性:通知某些特殊实体的可能性,“实体模型”完整地描述了一类实体。
下一个版本很可能会在上述某些方向上实现有效的输入。
无论如何,你看到OrionSTHSink了吗? ?尽管它的名字是(STH,Short-Term Historic),但它是一个已经在 MongoDB 中创建数据聚合的接收器。
关于mongodb - Fiware天鹅座: Can we store Orion data in MongoDB under other types than String?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32442212/