Элемент в коллекции содержит массив строк. Я хотел бы найти и отсортировать элементы с большинством совпадающих элементов в массиве.
Рассмотрим коллекцию:
[
{
"item_name":"Item_1",
"tags":["A","B","C","D","E"]
},
{
"item_name":"Item_2",
"tags":["A","B","D","E","G"]
},
{
"item_name":"Item_3",
"tags":["B","C","E","H"]
}
]
Я хочу отсортировать коллекцию на основе такого массива, как ["B", «D», «G», «F»], который вернет
[
{
"item_name":"Item_2",
"tags":["A","B","D","E","G"]
},
{
"item_name":"Item_1",
"tags":["A","B","C","D","E"]
},
{
"item_name":"Item_3",
"tags":["B","C","E","H"]
}
]
Ожидаемый порядок будет Item_2, Item_1, а затем Item_3, поскольку,
- Item_2 соответствует 3 элементам («B», «D» и «G»)
- затем Item_1 с 2 совпадениями («B» и «D»)
- наконец Item_3 с 1 совпадением («B»)
Если не в mongodb, методы JavaScript также будут оценены