Menu Docs
Página inicial do Docs
/
Manual do banco de dados
/ / /

Mongo.setReadPref() (método mongosh)

Mongo.setReadPref(mode, tagSet)

Chame o setReadPref() método em um Mongo objeto de conexão para controlar como o cliente roteará todas as queries para membros do conjunto de réplicas. [1]

Observação

Você deve chamar Mongo.setReadPref() no objeto de conexão antes de recuperar documentos usando essa conexão para usar essa preferência de leitura.

[1] Para aplicar uma read preference a uma ou mais queries específicas, você pode aplicar cursor.readPref() a um cursor antes da iteração. Consulte cursor.readPref() para detalhes.
Parâmetro
Tipo
Descrição

string

Um dos seguintes modos de preferência de leitura : primary, primaryPreferred, secondary, secondaryPreferred ou nearest

matriz de documentos

Opcional. Um conjunto de tags usado para direcionar leituras para nós com as tags especificadas. tagSet não estará disponível se estiver usando o modo de read preference primary.

Para obter detalhes, consulte Listas de conjuntos de tags de read preference.

Mongo.setReadPref() não é compatível com a opção preferência de leitura maxStalenessSeconds.

Esse método está disponível em implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem

  • MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB

  • MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB

Mongo.setReadPref() tem o seguinte comportamento.

A partir do mongosh 2.0, o db.runCommand() ignora quaisquer read preferences globais adicionadas por meio da connection string ou utilizando o método Mongo.setReadPref(). Para especificar a read preference desejada, utilize o argumento options ao chamar db.runCommand().

A seguinte operação define o modo de preferência de leitura para direcionar a leitura para um nó secundário. Isso permite implicitamente leituras de secundários.

db.getMongo().setReadPref('secondary')

No entanto, se chamado enquanto conectado ao primary usando mongosh, o comando acima não roteia querys para um secundário.

Para segmentar secundários com tags específicas, inclua a array mode e o tagSet:

db.getMongo().setReadPref(
"secondary",
[
{ "datacenter": "B" }, // First, try matching by the datacenter tag
{ "region": "West"}, // If not found, then try matching by the region tag
{ } // If not found, then use the empty document to match all eligible members
]
)

Durante o processo de seleção secundário, o MongoDB tenta encontrar membros secundários com a tag datacenter: "B" primeiro.

  • Se encontrado, o MongoDB limita os secundários elegíveis àqueles com a marcação datacenter: "B" e ignora as marcações restantes.

  • Se nenhum for encontrado, o MongoDB tentará encontrar membros secundários com a tag "region": "West" .

    • Se encontrado, o MongoDB limita os secundários elegíveis àqueles com a marcação "region": "West" .

    • Se nenhum for encontrado, o MongoDB usará todos os secundários elegíveis.

Consulte Ordem da correspondência de tags para obter detalhes.

Dica

Voltar

Mongo.setCausalConsistency

Nesta página