написал уже ворзращает пустой массив. но совпадения гарантирование
Это потому что _id у тебя объект, по ходу, а не строка
И тебе надо перед сравнением (а для одного из массивов лучше заранее) привести его к строке
В целом алгоритм такой: строишь set по приведённым к строке _id из первого массива, потом за один проход по второму массиву отсеиваешь то, чего нет в этом set
И ни в коем случае никаких includes, конечно же, не надо делать n*m проходов то, что достаточно сделать в n проходов