Hello,
I am working on an audio streaming platform and I am facing a problem where if a user adds the same song twice in a playlist I will only be able to recieve it once,
I am running the following query:
media.aggregate(
[
{
"$match":
{
"uuid":"9ca7b8b4f68348869f05dbcf4e62a560",
"type":"playlist"
}
},
{
"$lookup":
{
"from":"media",
"localField":"tracks._id",
"foreignField":"_id",
"as":"tracks"
}
}
]
)
This is the data that is present in my playlist before the aggregation:
{
"_id": "62baa8249f19e6ca929191f5",
"title": "This is a playlist",
"tracks": [
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
},
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
}
}
],
"type": "playlist"
}
My goal is to get all the tracks even though they are the same, I would like them aggregated as multiple objects but I am getting the following response when i execute the query:
"_id": "62baa8249f19e6ca929191f5",
"title": "This is a playlist",
"tracks": [
{
"_id": {
"$oid": "62bd5bb68fce34575360669c"
},
"album": {
"_id": {
"$oid": "62bd63c88fce34575360669d"
},
"thumbnail": " https://i.scdn.co/image/ab67616d00001e02a9956b47dc867ce769c7841f"
},
"artists": [
{
"_id": {
"$oid": "62bd69c68fce3457536066a1"
}
}
],
"disc_number": 1,
"duration": 166.64,
"explicit": false,
"is_playable": true,
"name": "About A Girl ( New Release )",
"popularity": 73,
"track": true,
"track_number": 2,
"type": "track",
"uuid": "55yvzYuvJYG2RUEnMK78tr",
"audio": {
"_id": {
"$oid": "62bd8b518fce3457536066b1"
},
"duration": 483000
},
"is_new_release": true,
"is_promoted": true,
"title": "hey"
}
],
"type": "playlist"
}