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() runs the command in the context of the current database. Some commands are only applicable in the context of the admin database, and you must change your db object before running these commands or use db.adminCommand().
readPreference
A partir do mongosh,2.0 você pode especificar a preferência de leitura de um comando com o argumento options. Se você não especificar uma preferência de leitura, odb.runCommand() padrão primary será para.
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:
|