Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

cursor.readPref()

Nesta página

  • Definição
  • Compatibilidade
  • Exemplos
cursor.readPref(mode, tagSet, hedgeOptions)

Importante

Método mongosh

Esta página documenta um método mongosh. Esta não é a documentação de um driver de idioma específico, como Node.js.

Para drivers de API do MongoDB, consulte a documentação do driver do MongoDB específica da linguagem.

Anexar readPref() a um cursor para controlar como o cliente roteia a query para membros do conjunto de réplicas.

Observação

Você deve aplicar readPref() ao cursor antes de recuperar quaisquer documentos do banco de dados.

Parâmetro
Tipo
Descrição

Modo

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 membros com as tags especificadas. tagSet is not available if using primary.

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

documento

IMPORTANTE: a partir do MongoDB,8.0 as leituras distribuídas estão obsoletas. As queries que especificam a preferência de leitura nearest não usam mais leituras protegidas por padrão. Se você especificar explicitamente uma leitura distribuída distribuída , o MongoDB executará uma leitura distribuída e registrará um aviso.

Opcional. Um documento que especifica se deve permitir o uso de leituras com hedge.

{ enabled: <boolean> }

O campo enabled é padronizado como verdadeiro; ou seja, especificar um documento vazio { } é equivalente a especificar { enabled: true }.

readPref() 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

Observação

Este comando é aceito em todos os clusters do MongoDB Atlas. Para obter informações sobre o suporte do Atlas a todos os comandos, consulte Comandos não suportados.

  • 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

A seguinte operação utiliza o modo de read preference para direcionar a leitura para um nó secundário.

db.collection.find({ }).readPref( "secondary")

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

db.collection.find({ }).readPref(
"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

Veja também:

Para clusters fragmentados, você pode habilitar leituras com cobertura para preferência de leitura não primária. Para utilizar leituras protegidas, o mongos deve ter enabled support para leituras protegidas (o padrão) e as preferências de leitura nãoprimary devem permitir o uso de leituras protegidas.

Para direcionar secundários em clusters fragmentados usando leituras com hedge, inclua o modo e as hedgeOptions, como nos exemplos a seguir:

  • Sem um conjunto de tags

    db.collection.find({ }).readPref(
    "secondary", // mode
    null, // tag set
    { enabled: true } // hedge options
    )
  • Com um conjunto de tags

    db.collection.find({ }).readPref(
    "secondary", // mode
    [ { "datacenter": "B" }, { } ], // tag set
    { enabled: true } // hedge options
    )

Voltar

cursor.readConcern