mongodb如何仅从查询查询返回值列表

时间:2014-04-01 14:58:14

标签: mongodb

我有一个收藏展示位置,每个记录都有字段:placement_id,program_id,category,... 我需要找到program_id = 3或5的所有展示位置,并且只返回placement_id列表。

当我尝试这个命令时:

db.placements.find({program_id:{$in: [3, 5]}}, {placement_id:1, _id:0})

我有记录:

{ "placement_id" : 196 }
{ "placement_id" : 197 }
{ "placement_id" : 198 }
...

有没有办法只返回:

[196, 197, 198...]

1 个答案:

答案 0 :(得分:16)

find()的光标将产生JSON文档,无论如何。 但是您可以提取所需的值。也许是这样的事情:

get_placement_id = function(doc) { return doc.placement_id; }

db.placements.find({program_id:{$in: [3, 5]}}, {placement_id:1, _id:0}).map( get_placement_id )

==>

[ 196, 197, 198, ... ]