有聚合:
{
$unwind:
{
path: <field path>,
includeArrayIndex: <string>,
preserveNullAndEmptyArrays: <boolean>
}
}
目前,我正在使用这个&#34; $ unwind&#34;在mongodb版本3.2中的概念。它工作正常。但在制作中我有mongodb 3.0.4版。如何在3.0.4版本中使用此概念?
任何人都可以帮我解决这个问题...
答案 0 :(得分:0)
有两种方法可以解决它。
position
值 - 它将作为一种entryID字段 - 请参阅下面的代码段:更改forEach循环中的documnet结构:
db.dev777_copy.find({}).forEach(function (doc) {
var empArraySize = doc.employees.length;
for (var i = 0; i < empArraySize; i++) {
var innerArraySize = doc.employees[i].Salary.length;
for (var j = 0; j < innerArraySize; j++) {
doc.employees[i].Salary[j] = {
position : NumberInt(j),
value : doc.employees[i].Salary[j]
};
}
}
db.dev777_copy.save(doc);
})
然后我们的文档会有新的形状:
{
"_id" : ObjectId("57862763a63c006944fb508b"),
"employees" : [{
"empId" : 100.0,
"Salary" : [{
"position" : 0,
"value" : 1000.0
}, {
"position" : 1,
"value" : 2000.0
}, {
"position" : 2,
"value" : 3000.0
}
]
}, {
"empId" : 101.0,
"Salary" : [{
"position" : 0,
"value" : 3000.0
}, {
"position" : 1,
"value" : 4000.0
}, {
"position" : 2,
"value" : 500.0
}
]
}
]
}