2015-05-14 75 views
2

的assoc命令陣列我收藏已與以下表單對象MongoDB的返回結果

{'id':2, 'name':'john', 'avatar':'img.png'}, 
{'id':3, 'name':'chriss', 'avatar':'img2.png'} 

後,我查詢蒙戈,我希望得到以下結果

{'2': {'id':2, 'name':'john', 'avatar':'img.png'}, '3':{'id':3, 'name':'chriss', 'avatar':'img2.png'}} 

是否有可能做到這一點與mongo或我必須迭代結果來獲得這種形式?

+0

U必須迭代結果以形成所需的JSON。 – Subburaj

回答

0

你可以使用find()光標forEach()方法如下嘗試過的結果迭代:

var obj = {}; 
db.collection.find({}, {"_id": 0}).forEach(function(doc){ 
    obj[doc.id.toString()] = doc; 
}); 
printjson(obj); 

或者使用map()方法:

var mapped = db.collection.find({}, {"_id": 0}).map(function(doc){ 
    var obj = {}; 
    obj[doc.id.toString()] = doc; 
    return obj; 
}); 
printjson(mapped); 

輸出在這兩種方法

{ 
     "2" : { 
       "id" : 2, 
       "name" : "john", 
       "avatar" : "img.png" 
     }, 
     "3" : { 
       "id" : 3, 
       "name" : "chriss", 
       "avatar" : "img2.png" 
     } 
}