У меня есть коллекция активов, в которой есть данные типа
{
"_id" : ObjectId("5bfb962ee2a301554915"),
"users" : [
"abc.abc@abc.com",
"abc.xyz@xyz.com"
],
"remote" : {
"source" : "dropbox",
"bytes" : 1234
}
{
"_id" : ObjectId("5bfb962ee2a301554915"),
"users" : [
"pqr.pqr@pqr.com",
],
"remote" : {
"source" : "google_drive",
"bytes" : 785
}
{
"_id" : ObjectId("5bfb962ee2a301554915"),
"users" : [
"abc.abc@abc.com",
"abc.xyz@xyz.com"
],
"remote" : {
"source" : "gmail",
"bytes" : 5647
}
Я ищу группу пользователей и получаю общее количество байтов в соответствии с ее источником, например
{
"_id" : "abc.abc@abc.com",
"bytes" : {
"google_drive": 1458,
"dropbox" : 1254
}
}
IЯ не получаю, как получить вложенный вывод с помощью группировки.Я пытался с запросом
db.asset.aggregate(
[
{$unwind : '$users'},
{$group:{
_id:
{'username': "$users",
'source': "$remote.source",
'total': {$sum: "$remote.bytes"}} }
}
]
)
Таким образом, я получаю результат с повторным именем пользователя.