У меня есть массив вроде:
const tags = ["a", "b", "c"];
, и моя коллекция выглядит следующим образом:
[{
_id: asdsadasd,
tagName: "a"
},
{
_id: qweqewqe,
tagName: "d"
}
]
Я хочу отфильтровать массив tags
так, чтобы он не содержал никаких тегов (tagName
поле) в коллекции.
пример вывода:
["b", "c"]
Это то, что я пробовал:
[
{
'$group': {
'_id': null,
'tags': {
'$push': '$tagName'
}
}
}, {
'$project': {
'filteredTags': {
'$filter': {
'input': tags,
'as': 'item',
'cond': {
'$not': {
'$in': [
'$$item', '$tags'
]
}
}
}
}
}
}
]
Это работает нормально но я хочу знать, есть ли более эффективный способ сделать это с помощью конвейера агрегации или каким-либо другим способом.