Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

setDefaultRWConcern (comando de banco de dados)

setDefaultRWConcern

O comando administrativo define a configuração global de read ou preocupação setDefaultRWConcern setDefaultRWConcern de admin gravação padrão para um conjunto de réplicas ou cluster fragmentado. deve ser executado no banco de dados.

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

  • 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

O comando tem a seguinte sintaxe:

db.adminCommand(
{
setDefaultRWConcern : 1,
defaultReadConcern: { <read concern> },
defaultWriteConcern: { <write concern> },
writeConcern: { <write concern> },
comment: <any>
}
)

O comando utiliza os seguintes campos:

Campo
Tipo
Descrição

int

Defina como 1.

object

Documento que contém a configuração global de read concern. Especifique um objeto de read concern válido.

  • setDefaultRWConcern O suporta o seguinte subconjunto de nível:

  • Para cancelar o read concern padrão atualmente configurado, especifique um documento vazio {}.

  • setDefaultRWConcern oferece suporte apenas à levels configuração de preocupação de leitura . Não é possível especificar nenhuma outra configuração de preocupação de leitura no preocupação de leitura padrão.

Omita este documento para deixar inalterada o atual preocupação de leitura global. Se omitido, devesetDefaultRWConcern especificar defaultWriteConcern.

object

Documento que contém a configuração de write concern padrão global.

  • Para a configuração de preocupação de gravação w, oferece suporte a todos os valores de preocupação desetDefaultRWConcern gravação , w : 0 exceto.

  • Para a configuração de preocupação de gravaçãowtimeout, setDefaultRWConcerntem como padrão 0 se a configuração for omitida. As operações são bloqueadas até que o preocupação de gravação solicitado seja atendido. Se estiver especificando um padrão global wtimeout, certifique-se de que o valor seja grande o suficiente para permitir que as operações de gravação atinjam o preocupação de gravação solicitado.

  • Para desmarcar o write concern configurado no momento, especifique um documento vazio {}.

Omita este documento para deixar o atual preocupação de gravação global inalterado. Se omitido, devesetDefaultRWConcern especificar defaultReadConcern.

objeto

Opcional. documento que especifica o preocupação de gravação setDefaultRWConcern a ser usado pelo próprio comando.

Se omitido, usa o preocupação desetDefaultRWConcern gravação padrão global definido anteriormente se um tiver sido configurado.

comment

any

Opcional. Um comentário fornecido pelo usuário para anexar a este comando. Depois de definido, esse comentário aparece junto com os registros desse comando nos seguintes locais:

Um comentário pode ser qualquer tipo BSON válido (string, inteiro, objeto, array etc).

setDefaultRWConcern retorna um objeto que contém o read ou preocupação de gravação padrão global configurado no momento. Consulte para getDefaultRWConcern obter uma documentação mais completa sobre os campos retornados.

Observação

Exige featureCompatibilityVersion 4.4+

Cada no conjunto de mongod réplicas ou cluster fragmentado deve ter featureCompatibilityVersion configurado para pelo menos 4.4 para setDefaultRWConcern usar.

A partir do MongoDB,5.0 uma vez que o Cluster Wide Write Concern (CWWC) é definido por meio do setDefaultRWConcern comando, o preocupação de gravação não pode ser desconfigurado.

O MongoDB só aplica o read ou write concern global padrão a operações que não especificam explicitamente um read ou write concern.

Se o MongoDB aplicar o read ou write concern padrão global a uma operação, essa operação se comportará como se esse read ou write concern fosse explicitamente especificado pelo cliente emissor.

Emita no setDefaultRWConcern conjunto de réplicas primary. O primary replica as novas configurações padrão globais para os nós restantes do conjunto de réplicas. Os secundários que ainda não replicaram as configurações padrão globais atualizadas continuam usando sua cópia "obsoleta" local dos padrões.

Emita o comando setDefaultRWConcern com um writeConcern de para garantir que o comando retorne somente após as alterações propagarem para a maioria dos nós do conjunto de w : "majority" réplicas.

EmitasetDefaultRWConcerncontra ummongosno cluster. Omongosmantém as configurações atualizadas no conjunto de réplicas do servidor de configuração (CSRS). Cadamongosemite periodicamente umgetDefaultRWConcernno CSRS para atualizar sua cópia local das configurações globais. Ummongosusa sua cópia local "obsoleta" dos padrões globais durante o período de tempo entre as atualizações.

Aviso

Se você estiver convertendo um conjunto de réplicas em um cluster fragmentado, não poderá executar o comando setDefaultRWConcern até que a conversão seja concluída.

Emita o comando setDefaultRWConcern com um writeConcern de para garantir que o comando retorne somente após as alterações propagarem para a maioria dos nós do w : "majority" CSRS.

Quando um aplicativo emite uma operação no mongos sem especificar explicitamente uma configuração de read ou write concern, o mongos aplica a configuração padrão global correspondente.

As configurações padrão globais não se propagam para os shards individuais. Você não pode executar em um setDefaultRWConcern shard.

Importante

setDefaultRWConcern exige featureCompatibilityVersion. 4.4+ Se você fizer o downgrade do featureCompatibilityVersion do sistema 4.4 de 4.2 para, todos os padrões da read e preocupação de gravação em todo o cluster serão perdidos, mas mongos as instâncias do poderão continuar aplicando os padrões por até 30 segundos.

O compartilhamento de comandos administrativos que executam operações de gravação no servidor de configuração, como os comandos enableSharding ou addShard, tem comportamento específico com configurações de write concern padrão global:

  • Os comandos usam o "majority" independentemente do write concern padrão global configurado.

  • Os comandos usam um wtimeout mínimo de 60000. Os comandos só usam o write concern padrão global wtimeout se ele for maior que 60000.

Para conjuntos de réplicas ou clusters fragmentados que forçam autenticação em sistemas autogerenciados, setDefaultRWConcern exige que o usuário autenticado tenha a ação de setDefaultRWConcern privilégio.

O role integrado do fornece os privilégios exigidos para clusterManager executar setDefaultRWConcern o.

A seguinte operação define o write concern global para o seguinte:

db.adminCommand({
"setDefaultRWConcern" : 1,
"defaultWriteConcern" : {
"w" : 2
}
})

A operação retorna um documento semelhante ao seguinte:

{
"defaultWriteConcern" : {
"w" : 2
},
"updateOpTime" : Timestamp(1586290895, 1),
"updateWallClockTime" : ISODate("2020-04-07T20:21:41.849Z"),
"localUpdateWallClockTime" : ISODate("2020-04-07T20:21:41.862Z"),
"ok" : 1,
"$clusterTime" : { ... }
"operationTime" : Timestamp(1586290925, 1)
}

A operação a seguir define o read concern global como "majority":

db.adminCommand({
"setDefaultRWConcern" : 1,
"defaultReadConcern" : { "level" : "majority" }
})

A operação retorna um documento semelhante ao seguinte:

{
"defaultReadConcern" : {
"level" : "majority"
},
"updateOpTime" : Timestamp(1586290895, 1),
"updateWallClockTime" : ISODate("2020-04-07T20:21:41.849Z"),
"localUpdateWallClockTime" : ISODate("2020-04-07T20:21:41.862Z"),
"ok" : 1,
"$clusterTime" : { ... }
"operationTime" : Timestamp(1586290925, 1)
}

A operação a seguir define o read ou write concern padrão global para o seguinte:

db.adminCommand({
"setDefaultRWConcern" : 1,
"defaultWriteConcern" : {
"w" : 2
},
"defaultReadConcern" : { "level" : "majority" }
})

A operação retorna um documento semelhante ao seguinte:

"defaultWriteConcern" : {
"w" : 2
},
"defaultReadConcern" : {
"level" : "majority"
}

Você pode:

  • Desconfigure o read concern padrão global.

  • Desconfigure apenas o write concern padrão global se você ainda não o tiver definido.

Por exemplo, suponha que o read concern padrão global esteja configurado para level: "majority". Para desconfigurar o read concern padrão global, use um documento vazio {}:

db.adminCommand( {
"setDefaultRWConcern" : 1,
"defaultReadConcern" : {}
} )

A operação retorna um documento que indica que a operação foi bem-sucedida:

{
defaultReadConcern: { level: 'local' },
defaultWriteConcern: { w: 2, wtimeout: 0 },
updateOpTime: Timestamp({ t: 1656696934, i: 1 }),
updateWallClockTime: ISODate("2022-07-01T17:35:40.578Z"),
defaultWriteConcernSource: 'global',
defaultReadConcernSource: 'implicit',
localUpdateWallClockTime: ISODate("2022-07-01T17:35:40.578Z"),
ok: 1,
'$clusterTime': {
...
},
operationTime: Timestamp({ t: 1656632593, i: 1 })
}

Você só pode desconfigurar a definição do write concern padrão global se ainda não o tiver definido.

Para desconfigurar o write concern padrão global, use um documento vazio {}:

db.adminCommand( {
"setDefaultRWConcern" : 1,
"defaultWriteConcern" : {}
} )

Se o write concern padrão global:

  • For desconfigurado, a operação foi bem-sucedida.

  • Já estiver configurado, a operação retorna o seguinte erro.

MongoServerError: The global default write concern cannot be unset
once it is set.