我的收藏品有以下表格的对象
{'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执行此操作,还是必须迭代结果以获取此表单?
答案 0 :(得分: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"
}
}