MongoDB返回assoc数组的结果
我的collections有以下forms的对象
{'id':2, 'name':'john', 'avatar':'img.png'}, {'id':3, 'name':'chriss', 'avatar':'img2.png'}
在我查询mongo后,我想得到以下结果
{'2': {'id':2, 'name':'john', 'avatar':'img.png'}, '3':{'id':3, 'name':'chriss', 'avatar':'img2.png'}}
是否有可能与Mongo做到这一点,或者我必须迭代结果来获得这种forms?
您可以尝试使用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" } }