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 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â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 | Opcional. Um documento que especifica se deve permitir o uso de leituras com hedge.
O campo Há leituras distribuídas disponíveis para clusters fragmentados. Para utilizar leituras distribuídas, o A preferência de leitura |
readPref()
não é compatível com a opção preferência de leitura maxStalenessSeconds
.
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.
Especificar leitura distribuída
Para clusters fragmentados, você pode ativar leituras distribuídas para preferências de leitura não primárias. Para utilizar leituras distribuídas, o mongos
deve ter enabled support
para leituras distribuídas (o padrão) e as preferências de leitura nãoprimary
devem permitir o uso de leituras distribuídas.
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 )