A segunda maneira está correta (poderia ser melhorada rodando os dois em paralelo) acho que o problema está em outro lugar. Não sei qual framework você está usando, mas acho que o campo
_id
é do mongoDB e é um ObjectId
e parece que o decoded.id pode ser um objectId enquanto o que vem da solicitação é, obviamente, apenas uma string. Então eu acho que está vazio porque não encontra nenhum usuário com essa string. Tente torná-lo um objectId dessa string (referindo-se a
req.params.user_id
na segunda consulta)