db.runCommand()
Definição
db.runCommand(command, [options])
Fornece um auxiliar para executar comandos de banco de dados especificados. Esse é o método preferencial para emitir comandos de banco de dados, pois fornece uma interface consistente entre o shell e os drivers.
ParâmetroTipoDescriçãocommand
documento ou string
Documento ou string que especifica o comando. Se especificado como uma string,
db.runCommand()
transforma a string em um documento.options
documento
Iniciando no mongosh 2,0, opções que especificam como o
mongosh
executa o comando.options.readPreference
Read preference segundo a qual executar o comando. Se não for especificado, o padrão será
primary
.db.runCommand()
ignora qualquer outro conjunto de configuração global de preferência de leitura, incluindo usarsetReadPref()
ou especificarreadPreference
em uma connection string.No mongosh 1.x, o
db.runCommand()
não utiliza um argumento dooptions
. Para definir a read preference, utilizeMongo.setReadPref()
ou especifiquereadPreference
na connection string.Para especificar um limite de tempo em milissegundos, consulte Terminar operações em execução.
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
Comportamento
db.runCommand()
executa o comando no contexto do banco de dados atual. Alguns comandos são aplicáveis somente no contexto do banco de dados admin
e você deve alterar o objeto db
antes de executar esses comandos ou usar db.adminCommand()
.
readPreference
Começando em mongosh 2.0, você pode especificar a preferência de leitura para um comando com o argumento options. Se você não especificar uma preferência de leitura, db.runCommand()
retornará a primary
por padrão.
Aviso
No mongosh 2.0, db.runCommand()
ignora qualquer outra configuração global de read preference definida, incluindo o uso de Mongo.setReadPref()
ou a especificação de readPreference
em uma string de conexão.
No mongosh 1.x, o db.runCommand()
não utiliza um argumento do options
. db.runCommand()
usa a read preference especificada usando Mongo.setReadPref()
ou especificando readPreference
na connection string.
Exemplos
Os seguintes exemplos mostram como utilizar o db.runCommand()
para executar comandos do banco de dados.
hello Comando sem read preference especificada
Este exemplo mostra como utilizar o db.runCommand()
para executar o comando hello
.
db.runCommand( { hello: 1 } )
Para obter detalhes sobre a saída, consulte hello Output.
Para obter detalhes sobre o comportamento da preferência de leitura, consulte preferência de leitura.
hello Comando com readPreference: secondaryPreferred
Este exemplo mostra como usar db.runCommand()
para executar o comando hello
com a preferência de leitura secondaryPreferred
.
db.runCommand( { hello: 1 }, { readPreference: "secondaryPreferred" } )
Para obter detalhes sobre a saída, consulte hello Output.
Para obter detalhes sobre o comportamento da preferência de leitura, consulte preferência de leitura.
Resposta
O método retorna um documento de resposta que contém os seguintes campos:
Campo | Descrição |
---|---|
<command result> | Campos de resultados específicos do |
| Um número que indica se o comando obteve êxito ( |
| A hora lógica da operação. O MongoDB usa o tempo lógico para solicitar operações. Somente para conjuntos de réplicas e clusters fragmentados. Se o comando não gerar uma entrada no oplog, por exemplo, uma operação de leitura, a operação não avançará o relógio lógico. Neste caso,
Para operações associadas a sessões causalmente consistentes, os drivers do MongoDB usam o tempo lógico para definir automaticamente as operações de leitura e o período |
| Um documento que retorna a hora do cluster assinado. O tempo de cluster é um tempo lógico usado para ordenar operações. Somente para conjuntos de réplicas e clusters fragmentados. Apenas para uso interno. O documento contém os seguintes campos:
|