Visão geral
Neste guia, você pode aprender como utilizar o driver Java para configurar operações CRUD para instâncias do MongoClient.
As preferências de leitura, as write concerns e as read concerns controlam como o driver direciona as operações de leitura e espera a confirmação das operações de leitura e gravação quando conectado a um conjunto de réplicas do MongoDB. As preferências de leitura e as preocupações de leitura se aplicam a todas as operações de leitura; as write concerns se aplicam a todas as operações de gravação.
Para obter mais informações, consulte a documentação do servidor sobre preferências de leitura, read concerns e write concerns.
MongoDatabase e as instâncias MongoCollection herdam suas preferências e preocupações do MongoClient que as acessa. No entanto, você pode aplicar configurações personalizadas aos seus bancos de dados e coleções. Para obter mais informações, consulte a página Configurar configurações personalizadas de CRUD.
Você pode especificar configurações de CRUD no nível do cliente usando uma string de conexão ou passando um objeto MongoClientSettings para o construtor MongoClients. Selecione a aba Connection String ou MongoClientSettings para visualizar as opções disponíveis:
Inclua os seguintes parâmetros em sua string de conexão para modificar o comportamento de leitura ou escrita do driver:
Nome da opção | Tipo | Descrição |
|---|---|---|
| booleano | Especifica que o driver deve aguardar que a instância do MongoDB conectada faça o commit em grupo no arquivo de diário no disco para todas as gravações. Padrão: |
| string ou inteiro | Define a write concern. Para obter mais informações sobre valores, consulte a documentação do MongoDB Server para a opção w. Padrão: |
| inteiro | |
| string | Especifica a preferência de leitura. Para obter mais informações sobre valores, consulte a documentação do MongoDB Server para a opção readPreference. Padrão: |
| string | Especifica as tags de preferência de leitura . Para obter mais informações sobre valores, consulte a documentação do MongoDB Server para a opção readPreferenceTags. Padrão: |
| inteiro | Especifica, em segundos, o quão obsoleto um secundário pode ficar antes que o driver pare de se comunicar com esse secundário. O valor mínimo é 90 segundos ou a frequência de pulsação mais 10 segundos, o que for maior. Para mais informações, consulte a documentação do MongoDB Server para a opção maxStalenessSeconds. Não fornecer um parâmetro ou especificar explicitamente Padrão: |
| string | Especifica a representação UUID a ser usada para operações de leitura e gravação. Para obter mais informações, consulte a documentação do driver para o método MongoClientSettings.getUuidRepresentation(). Padrão: |
| booleano | Especifica que o driver deve repetir as operações de gravação com suporte se elas não puderem ser concluídas devido a um erro de rede. Padrão: |
| booleano | Especifica que o driver deve repetir as operações de leitura com suporte se não for possível concluir devido a um erro de rede. Padrão: |
O exemplo a seguir define a preferência de leitura para ler a partir do nó do conjunto de réplicas mais próximo:
ConnectionString connectionString = "mongodb://<host>:<port>/?readPreference=nearest" MongoClient mongoClient = MongoClients.create(connectionString)
Para obter mais informações sobre esses parâmetros, consulte a documentação da API ConnectionString.
Encadeie os seguintes métodos ao construtor MongoClientSettings para modificar o comportamento de leitura/gravação do driver:
| Define a read concern. Página do manual do servidor Documentação da API |
| Define a preferência de leitura Padrão: |
| Se o driver realiza novas leituras se ocorrer um erro de rede. Padrão: |
| Se o driver realiza gravações repetidas se ocorrer um erro de rede. Padrão: |
| Define a representação UUID para utilizar ao codificar instâncias de UUID e decodificando valores binários BSON com subtipo de 3. |
| Define a write concern. Padrão: |
O exemplo a seguir define a preferência de leitura para ler a partir do nó do conjunto de réplicas mais próximo:
MongoClient mongoClient = MongoClients.create( MongoClientSettings.builder().applyConnectionString(new ConnectionString("<your connection string>")) .readPreference(ReadPreference.nearest()) .build());
Para obter mais informações sobre esses métodos, consulte a documentação da API do MongoClientSettings.Builder.
Observação
Redução de carga no Intelligent Workload Management (IWM)
Se os erros com rótulos SystemOverloadedError ou RetryableError estiverem causando falhas no seu aplicação ou aparecendo nos registros do seu aplicação , a redução de carga pode estar ativa no seu cluster e seu driver pode não estar atualizado para uma versão compatível. Recomendamos atualizar seu driver Java do MongoDB para a versão 5.8 ou posterior. Se você continuar a ver esses erros após a atualização, poderá resolvê-los por meio de alterações no servidor, como a revisão da configuração do Descarte de carga, ou por meio de alterações no aplicativo, como a implementação de um tratamento personalizado de erros ou a limitação de solicitações do lado do cliente . Dependendo da sua situação, alterações no aplicativo podem ser preferíveis ou necessárias.
O descarte de carga é um recurso do IWM e ajuda a gerenciar a carga do servidor rejeitando operações em excesso durante a sobrecarga sustentada. Este recurso está disponível no MongoDB 9.0 e posterior.
Para obter mais informações sobre IWM ou lidar com erros de sobrecarga, consulte a página Gerenciamento Inteligente de Volume de Trabalho ou a página Erros de Sobrecarga na documentação do Atlas .