I have the collection Sites like this
{
_id: ObjectId("5ed4d2ed8a98dd17c467c040"),
name:"Name1",
description:"Desc1",
tags:[
"Tag1",
"Tag3"
]
},
{
_id: ObjectId("5ed4d2ed8a98dd17c467c040"),
name:"Name2",
description:"Desc2",
tags:[
"Tag1",
"Tag3"
]
},
{
_id: ObjectId("5ed4d2ed8a98dd17c467c040"),
name:"Name3",
description:"Desc3",
tags:[
"Tag1",
"Tag4"
]
},
{
_id: ObjectId("5ed4d2ed8a98dd17c467c040"),
name:"Name4",
description:"Desc4",
tags:[
"Tag3",
"Tag4"
]
},
{
_id: ObjectId("5ed4d2ed8a98dd17c467c040"),
name:"Name5",
description:"Desc6",
tags:[
"Tag1",
"Tag2"
]
}
]
I want to query all tags with an order by a tag that is used most.
So with the example, the query should be return
"Tag1", "Tag3", "Tag4", "Tag2"
Because
Tag1 appears most 4 times
Tag3 appears 3 times
Tag4 appears 2 times
And final Tag2
Please help me to make the query like that.
Thanks in advance.
If you want just the tags sorted by count,you can try this.
This makes it an array of sorted tags.The important part is until the
$sort.You can try the code here also