для создания динамического поля запроса вам необходимо использовать операторы [] при вводе поля запроса. Допустим, ваш
req.body.term = immediate
;
затем вместо
$push:{ "generalrecommendations.immediate.types.apps": temp2[key1][i] }
использование
$push:{ ["generalrecommendations"+ req.body.term +"types.apps"]: temp2[key1][i] }
добавление [] в поле запроса сделает его динамическим.