我有以下Json的例子:
{
"status": "1",
"instancia": "1",
"infoAdicionais": {
"partes": [{
"id": "123"
}]
}
}
我想要一些模式将de partes 数组放出对象,有点像这样:
{
"status": "1",
"instancia": "1",
"partes": [{
"id": "123"
}]
}
找到命令有效吗?我使用mongodb 2.0时,无法使用聚合函数。
由于
答案 0 :(得分:0)
似乎从mongodb blog post开始,mongodb 2.2上提供了聚合框架,包括$project
。
以下将:
$project
所有字段,但infoAdicionals
&使用$infoAdicionais.partes
在mongo 2.2中查询是:
db.runCommand({
aggregate: "device",
pipeline: [{
$project: {
"status": 1,
"instancia": 1,
"partes": "$infoAdicionais.partes"
}
}]
});
在mongo 2.6+查询中是:
db.device.aggregate([{
$project: {
"status": 1,
"instancia": 1,
"partes": "$infoAdicionais.partes"
}
}])
在mongo 2.0.0中,我用光标迭代每个项目,添加一个属性&删除另一个:
var cursor = db.device.find();
while(cursor.hasNext()){
var item = cursor.next();
item.partes=item.infoAdicionais.partes;
delete item['infoAdicionais'];
printjsononeline(item);
}