我在mongodb colleciton文件中有:
集合中的文档(每个都有名称属性):
[{name:'Alex',..},{name:'Jane',..} ...]
如何查询db以获取结果只是映射name属性:
['Ale','Jane',...]
答案 0 :(得分:1)
您想要使用的是query projections。
MongoDB中的查询默认返回所有匹配文档中的所有字段。要限制MongoDB发送给应用程序的数据量,请在查询中包含投影。
对于您的示例,您的查询将如下所示:
db.people.find( {}, { "name": 1 } )
这将提取所有文档,但只返回每个文档的name属性(和_id
)。要删除_id
属性,您还必须明确指定您不需要它:
db.people.find( {}, { "name": 1, "_id": 0 } )
为了检索一个数组中的所有名称,您可以使用forEach
函数来汇总数据:
var names = [];
db.people.find( {}, { "name": 1, "_id": 0 } ).forEach( function( doc ){
names.push( doc.name );
});