Мангуст, получите дочерний документ и сгруппируйте - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь получить некоторые результаты и сгруппировать их по идентификатору, но я не знаю, как это сделать, я пытался с $ unwind и $ lookup, но когда я использую $ group, это неНе дайте мне результатов, поэтому я буду признателен за любые отзывы.

модель пользовательской оценки

{
 calification: Number,
 status: Number,
 place: {
   type: Schema.ObjectId,
   ref: 'Place',
 }    
}

место модели

{
 name: String,
 description: String
}

Я пытался сделать что-то подобное:

mongoose.model('usercalification').aggregate([
    {
        $lookup: {
            from: 'places',
            localField: 'place',
            foreignField: '_id',
            as: 'places'
        }
    },
    {
        {
            $unwind: '$places'
        }
    }
]);

Работает так, как должно, проблема в том, что я пытаюсь $ groupBy

mongoose.model('usercalification').aggregate([
    {
        $lookup: {
            from: 'places',
            localField: 'place',
            foreignField: '_id',
            as: 'places'
        }
    },
    {
        {
            $unwind: '$places'
        }
    },
    {
        $group: {
            _id: '$place',
            calification: { $avg: '$calification' },
            count: {$sum: 1}
        }
    }
]);

Я группирую по $ place, потому что это Place Id, который мне нуженсгруппировать по.

Буду признателен за любые отзывы.

1 Ответ

0 голосов
/ 25 сентября 2018

Проблема заключалась в том, что они были заказаны неправильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...