Você provavelmente poderia fazer isso em uma situação de recuperação de desastre, onde obter o banco de dados é importante, e você não se importa com a reversão.
Algo como:
cfg = rs.conf()
cfg.members[0].priority = 2
rs.reconfig(cfg, { force: true })
Onde membros [0] é um servidor "bom" conhecido.
Uma maneira mais segura de fazer isso provavelmente instalaria um pequeno serviço de gerenciamento em cada nó do mongo que você poderia acessar via api descanse. Se possível, os comandos do administrador devem ser retransmitidos para o primário.
Automatizar esse tipo de coisa seria bem difícil, já que provavelmente não há maneira fácil de seus aplicativos e servidores concordarem em quais servidores são "bons" e quais servidores são ruins.
Um modelo comum para clusters mongo é executar nós em vários locais, alguns dos quais podem ter roteamento menos confiável. Nesses casos, recomendo modificar as prioridades do nó. Se você tiver servidores que nunca desejaria como primário, defina suas prioridades como 0 e defina os nós no seu local preferido como prioridade 2 (ou superior).
Para mais informações, reconfigure, leia: link
Editar: Acho que ficaria tentado a brincar com os árbitros do mongo. Ao executar mongo árbitros nos locais onde você executa os clientes, eles poderiam votar no processo eleitoral. Servidores que não podem ser vistos pela maioria dos servidores de votação não podem ser primários.