Как я могу получить отличные документы на поле с Mongoose? - PullRequest
0 голосов
/ 14 октября 2011

Мой код:

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

Однако checkinResults - это просто серия ObjectId. Мне нужен полный документ. Есть идеи?

1 Ответ

1 голос
/ 16 октября 2011

Метод 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

Это может сгенерировать много запросов в БД, так что вы можетехотите изучить структуру агрегации или способ создания одного Checkin запроса + группировки на клиенте.

...