我的“组件”集合中有一个文档列表,每个文档都有属性“名称”。例如:
{
"_id" : "ce83jfieojf8"
"name": "George"
}
我想编写一个查询,返回组件中所有文档的所有名称值的完整列表。
现在,我可以使用db.components.find({'_id':0, 'name':1})
,这将返回如下所示的内容:
{"name" : "George"}
{"name" : "John"}
{"name" : "Paul"}
我可以使用索引和 .name 属性获取这些文档中任何一个的名称。如果我输入
db.components.find({'_id':0, 'name':1})[0].name
我得到:
George
但是,我想要的是一个将返回的查询:
George
John
Paul
我已经浏览了 Mongo 文档,但是当我搜索“返回多个值”或“返回列表”时,我只获得文档列表,而不是这些文档中的值列表。
是否可以做到这一点,或者我需要编写一个单独的函数来单独获取每个值?
非常感谢您的帮助。
最佳答案
假设您的收藏中有以下文档:
{ "_id" : ObjectId("55a7cfeeeb68594275546c76"), "name" : "George" }
{ "_id" : ObjectId("55a7cfeeeb68594275546c77"), "name" : "John" }
{ "_id" : ObjectId("55a7cfeeeb68594275546c78"), "name" : "Paul" }
{ "_id" : ObjectId("55a7cfeeeb68594275546c79"), "name" : "Jack" }
{ "_id" : ObjectId("55a7cfeeeb68594275546c7a"), "name" : "Paul" }
- 您可以使用
cursor.map
收集所有名称并将其作为数组返回
db.collection.find().map(function(u){ return u.name })
[ "George", "John", "Paul", "Jack", "Paul" ]
- 如果您想要的是集合中不同的
名称
,请使用collection.distinct
db.collection.distinct('name')
[ "George", "John", "Paul", "Jack" ]
关于mongodb - 是否可以从查询中返回特定值的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31457999/