cursor.readPref()
Nesta página
Definição
cursor.readPref(mode, tagSet, hedgeOptions)
Importante
Método mongosh
Esta página documenta um método
mongosh
. Esta não é a documentação para um driver específico de idioma, 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âmetros
Parâmetro | Tipo | Descrição |
---|---|---|
string | Um dos seguintes modos de preferência de leitura : | |
matriz de documentos | Opcional. Um conjunto de tags usado para direcionar leituras para membros com as tags especificadas. 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 Opcional. Um documento que especifica se deve permitir o uso de leituras com hedge.
O campo |
readPref()
não é compatível com a opção preferência de leitura maxStalenessSeconds
para preferência de leitura.
Compatibilidade
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
Exemplos
Especificar modo de preferência de leitura
A seguinte operação utiliza o modo de read preference para direcionar a leitura para um nó secundário.
db.collection.find({ }).readPref( "secondary")
Especificar conjunto de tags de preferência de leitura
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.
Veja também:
Especificar leitura distribuída
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ão
primary
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 )