如何在Mongoose的字段上获取不同的文档?

时间:2011-10-14 14:43:49

标签: mongodb node.js distinct coffeescript mongoose

我的代码是:

Checkin.distinct field, conditions, (err, checkinResults) ->
  doStuff()

但是,checkinResults只是一系列ObjectId。我需要完整的文件。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

distinct方法只返回选定的字段,而不是整个文档,因此您需要两个(或更多)查询:

getCheckinsByX = (field, cb) ->
    Checkin.find({ field }).limit(x).exec (err, checkins) ->
        cb err, { field, checkins }

Checkin.distinct field, conditions, (err, results) ->
    async.map results, getCheckinsByX, (err, checkinsByField) ->
        # use list of checkins

这可能会生成大量的数据库查询,因此您可能需要查看aggregation framework,或者在客户端上进行单Checkin个查询+分组的方法。