2016-07-21 69 views
0

我的JSON遵循例如:投影領域另一場

{ 
    "status": "1", 
    "instancia": "1", 
    "infoAdicionais": { 
     "partes": [{ 
      "id": "123" 
     }] 
    } 
} 

我想要一些方式把德當事人之間陣列對象,somelike這樣的:

{ 
    "status": "1", 
    "instancia": "1", 
    "partes": [{ 
      "id": "123" 
    }] 
} 

找到命令的工作?我使用的是mongodb 2.0,不支持聚合函數。

感謝

回答

0

似乎從這個mongodb blog post,聚合框架可以用MongoDB的2.2包括$project

下面的意志:

  • $project所有領域,但infoAdicionals &創建一個新的使用$infoAdicionais.partes

在蒙戈2.2查詢:

db.runCommand({ 
    aggregate: "device", 
    pipeline: [{ 
    $project: { 
     "status": 1, 
     "instancia": 1, 
     "partes": "$infoAdicionais.partes" 
    } 
    }] 
}); 

在蒙戈2.6+查詢是:

db.device.aggregate([{ 
    $project: { 
    "status": 1, 
    "instancia": 1, 
    "partes": "$infoAdicionais.partes" 
    } 
}]) 

在蒙戈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); 
} 
+0

對不起傢伙,版本爲2.0 – LukasMP

+0

我已經更新我的職務與命題迭代每個項目以執行相同的「$ project」 –

相關問題