Здесь вам в помощь будет умение составлять SQL-запросы. По умолчанию у нас просто джоинится таблица значений TV-параметров, и на одну запись документа мы получаем столько записей итоговых, сколько на нее есть записей в таблице значений твшек. А если мы сразу добавим фильтр по какому-то TV-полю, то мы в итоге только и получим записи с этим TV-полем. Все остальные записи будут отброшены, и в массиве tvs у вас не будет значений остальных TV-параметров.
В общем, в дальнейшем я скорее всего допилю более автоматизированный механизм фильтрации по ТВшкам, но вам все равно лучше понимать основы, так как без этого никуда.