У меня есть сборник песен и его метаданные со следующей структурой:Count (поле) на Монго
[{
title:"title",
artist:"artist",
album:"album,
...
},...
Теперь я хочу, чтобы получить список каждого художника с количеством песен и количеством альбомов он использует Node.js. До сих пор, используя структуру агрегации, я смог получить массив объектов с каждым артистом, его количество и массив с названиями альбомов (вместо количества), используя следующий конвейер:
collection.aggregate([
{ $project:{
artist:1,
album:1
}},
{ $group: {
_id: "$artist",
songs:{$sum: 1},
albums:{$addToSet:"$album"}
}},
{ $sort: { artist: 1 } }
]
Если я заменяю $addToSet
с $sum
, я получаю альбомы: 0 в каждом художнике, потому что он ожидает, что номер и не строки подводить.
Я просто не могу обойти это!
Работает как очарование, спасибо! – manutenfruits