0
我都有下列文件中的MongoDB(每小时的数据1周2个节点nodeA和基站)MongoDB的+加场使用其他领域来计算+获得MAX +
> db.collection_name.find().pretty()
{
"_id" : ObjectId("52979bc7ebf1a5ecb120ae65"),
"Time" : "18/11/2013 0:00",
"Node Name" : "NodeA",
"Integrity" : "100%",
"X_1" : 103674,
"X_2" : 45,
"X_3" : 13071,
"X_4" : 103626,
"X_5" : 46,
"X_6" : 14639
}
{
"_id" : ObjectId("52979bc7ebf1a5ecb120ae66"),
"Time" : "18/11/2013 0:00",
"Node Name" : "NodeB",
"Integrity" : "100%",
"X_1" : 103674,
"X_2" : 45,
"X_3" : 13071,
"X_4" : 103626,
"X_5" : 46,
"X_6" : 14639
}
...
{
"_id" : ObjectId("52979bc7ebf1a5ecb120ae67"),
"Time" : "24/11/2013 23:00",
"Node Name" : "NodeA",
"Integrity" : "100%",
"X_1" : 103674,
"X_2" : 45,
"X_3" : 13071,
"X_4" : 103626,
"X_5" : 46,
"X_6" : 14639
}
{
"_id" : ObjectId("52979bc7ebf1a5ecb120ae68"),
"Time" : "24/11/2013 23:00",
"Node Name" : "NodeB",
"Integrity" : "100%",
"X_1" : 103674,
"X_2" : 45,
"X_3" : 13071,
"X_4" : 103626,
"X_5" : 46,
"X_6" : 14639
}
现在我想要做的就是创建与一些新的领域是这样的:
db.students.update({},{$set :{"new_field_name":<values_of_new_dieldname>}},{upsert:false,multi:true})
在
<values_of_new_dieldname>
我想做
(X_1 + X_3)* 8/3600,让我们称之为它CALCA,这将给像:(我不关心X1-> x6在此阶段)
{
"_id" : ObjectId("52979bc7ebf1a5ecb120ae91"),
"Time" : "24/11/2013 23:00",
"Node Name" : "NodeA",
"new_field_name": calcA
}
{
"_id" : ObjectId("52979bc7ebf1a5ecb120ae90"),
"Time" : "24/11/2013 23:00",
"Node Name" : "NodeB",
"new_field_name": calcA
}
,然后我想在“节点名称”相结合,得到“new_field_name”,这将给类似的总和:
_id {
"Time" : "24/11/2013 23:00",
"field_name": calcA + calcA (from NodeA and NodeB)
}
这样的话,我将有其中之一从每小时“ 18/11/2013 0:00“ - >”2013年11月24日23:00“。
,然后我想要得到的“字段名”
良好的最大值,这就是我想要做的,我希望这是明确的。我目前正在使用聚合方法来尝试实现这一点。我会用这种方法是对的吗?
谢谢
这个问题很具体。较小的用例会更好。 – mikemaccana
你真的不想把时间存储在我猜想的是MM/DD/YYYY中。使用ISODate()。 – mcr