我使用的是MongoDb 3.4,我重新排列了400.000.000条记录。 我怎样才能改变这样的文件:
{
"_id": ObjectId("5a29777dce2ac011041718e9"),
"elements": [{
"IdSensore": "14348",
"Valore": -2.5,
"idOperatore": "1"
}, {
"IdSensore": "14351",
"Valore": 16,
"idOperatore": "1"
}, {
"IdSensore": "14355",
"Valore": 10,
"idOperatore": "1"
}, {
"IdSensore": "14355",
"Valore": 356,
"idOperatore": "3"
}
],
"Data": "01/01/2013 00:10:00"
}
在一个表中,数据值在行中,而在多个字段中只有特定的IdSensore(某些为空),数学运算idOperatore:1? 这是导出到另一个集合的理想结果:
Data IdSensore:14348 IdSensore:14351 IdSensore:14355
01/01/2013 00:10:00 -2.5 16 10
换句话说,在每一行中,我都希望找到所有" Valore"指定" IdSensore"和" idOperatore:1"在这个样本中。
答案 0 :(得分:0)
你需要做这样的事情:
db.startCollection.find().forEach(
function(item){
var data1 = item.Data;
var finishObject = {};
finishObject["Data"] = data1;
item.elements.filter(function(item2){return item2.idOperatore==1})
.forEach(
function(item2){
finishObject["IdSensore:"+item2.IdSensore] = item2.Valore;
}
);
db.finishCollection2.insert(finishObject);
})