Вот мой рабочий код:
age_range = DemographicsData.collection.aggregate([
{ '$match' => { video_id: { '$in' => video_ids }}},
{ '$unwind' => '$demographics_labels' },
{ '$group' => { _id: '$demographics_labels.age_range', count: { '$sum' => 1 }}}
])
gender = DemographicsData.collection.aggregate([
{ '$match' => { video_id: { '$in' => video_ids }}},
{ '$unwind' => '$demographics_labels' },
{ '$group' => { _id: '$demographics_labels.gender', count: { '$sum' => 1 }}}
])
ethnicity = DemographicsData.collection.aggregate([
{ '$match' => { video_id: { '$in' => video_ids }}},
{ '$unwind' => '$demographics_labels' },
{ '$group' => { _id: '$demographics_labels.ethnicity', count: { '$sum' => 1 }}}
])
{
age: age_range,
gender: gender,
ethnicity: ethnicity,
}
Есть ли способ получить тот же конечный результат за один запрос к базе данных?
Монго v2.4.9
Рельсы v3.2.8
Рубин v1.9.3
MongoId v3.1.0
С нетерпением жду возможности их обновления в какой-то момент, но решение должно будет учитывать эти версии.
Я знаю :( ... скоро надеюсь
Если вы можете обновить версию mongo до 3.4, тогда $ грань вам поможет