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çãocommanddocumento ou string
Documento ou string que especifica o comando. Se especificado como uma string,
db.runCommand()transforma a string em um documento.optionsdocumento
Iniciando no mongosh 2,0, opções que especificam como o
mongoshexecuta o comando.options.readPreferenceRead 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 especificarreadPreferenceem uma connection string.No mongosh 1.x, o
db.runCommand()não utiliza um argumento dooptions. Para definir a read preference, utilizeMongo.setReadPref()ou especifiquereadPreferencena 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:
|