2017-05-25 61 views
0

我有僱員json如下db,我想創建一個「addressId」(鍵)和「城市」(值)的地圖,並返回結果。MongoDB:將數據推送到地圖

{ 
    "_id" :1, 
    "_class" : "com.entity.Employee", 
    "clientId" : 1, 
    "addresses" : [ 
     { 
      "addressId" : 1, 
      "street" : "ghi", 
      "city" : "Hyderabad" 
     }, 
     { 
      "addressId" : 2, 
      "street" : "abc", 
      "city" : "Bangalore" 
     }, 
     { 
      "addressId" : 3, 
      "street" : "def", 
      "city" : "Chennai" 
     } 
    ] 
} 

請建議我可以使用哪個操作符,以及是否可以使用$ project來實現。

回答

1

是的,你必須使用投影與開卷和foreach使鍵值對

試試下面蒙戈查詢

db.collection_name.aggregate([{"$unwind":"$addresses"},{"$project": {"addressId": "$addresses.addressId", "city":"$addresses.city", "_class":"$_class","clientId":"$clientId"}  }]).forEach(function(ojb){ojb[ojb.addressId]=ojb.city; printjson(ojb);});