Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ /

Escrever scripts para o mongo shell

Aviso

O documento a seguir pertence ao mongo shell, incluído no download do MongoDB Server. Para obter informações sobre a nova shell MongoDB (),mongosh consulte a documentação mongosh.

Para entender as diferenças entre as duas conchas, consulte Comparação da shell mongo e mongosh.

Você pode escrever scripts para o shell mongo no JavaScript que manipulam dados no MongoDB ou executam operações administrativas.

Este tutorial fornece uma introdução à escrita de JavaScript que usa o shell mongo para acessar o MongoDB.

A partir do shell mongo ou de um arquivo JavaScript, você pode instanciar conexões de banco de dados de dados usando o construtor Mongo() :

new Mongo()
new Mongo(<host>)
new Mongo(<host:port>)

Considere o exemplo a seguir que instancia uma nova conexão à instância do MongoDB em execução no localhost na porta padrão e define a variável global db como myDatabase usando o método getDB() :

conn = new Mongo();
db = conn.getDB("myDatabase");

Se a conexão a uma instância do MongoDB que impõe controle de acesso, você pode usar o método db.auth() para autenticar.

Além disso, você pode usar o método connect() para se conectar à instância do MongoDB . O exemplo a seguir conecta à instância MongoDB que está sendo executada no localhost com a porta 27020 não padrão e define a variável global db :

db = connect("localhost:27020/myDatabase");

Dica

Observação

A partir da versão 4.2, o shell mongo fornece o método isInteractive() que retorna um booleano indicando se o shell mongo está sendo executado em modo interativo ou de script.

Ao escrever scripts para o shell mongo , considere o seguinte:

  • Para configurar a variável global do db , utilize o método getDB() ou o método connect() . Você pode atribuir a referência do banco de dados de dados a uma variável diferente de db.

  • As operações de gravação no shell mongo usam uma preocupação de gravação de { w: 1 } por padrão. Se estiver realizando operações em massa, use os métodos Bulk() .

  • Você não pode usar nenhum assistente de shell (por exemplo use <dbname>, show dbs, etc.) dentro do arquivo JavaScript porque não são JavaScript válidos.

    A tabela a seguir mapeia os ajudantes de shell mongo mais comuns para seus equivalentes em JavaScript.

    Ajudantes de shell
    Equivalentes de JavaScript

    show dbs, show databases

    db.adminCommand('listDatabases')
    use <db>
    db = db.getSiblingDB('<db>')
    show collections
    db.getCollectionNames()
    show users
    db.getUsers()
    show roles
    db.getRoles({showBuiltinRoles: true})
    show log <logname>
    db.adminCommand({ 'getLog' : '<logname>' })
    show logs
    db.adminCommand({ 'getLog' : '*' })
    it
    cursor = db.collection.find()
    if ( cursor.hasNext() ){
    cursor.next();
    }
  • No modo interativo, a shell mongo imprime os resultados das operações, incluindo o conteúdo de todos os cursores. Em scripts, use a função JavaScript print() ou a função mongo específica printjson() que retorna JSON formatado.

    Exemplo

    Para imprimir todos os itens em um cursor de resultado em mongo scripts de shell, use o seguinte idioma:

    cursor = db.collection.find();
    while ( cursor.hasNext() ) {
    printjson( cursor.next() );
    }

No prompt do sistema, use o shell mongo para avaliar o JavaScript.

Use a opção --eval para o shell mongo para passar ao shell um fragmento JavaScript, como no exemplo a seguir:

mongo test --eval "printjson(db.getCollectionNames())"

Isso retorna a saída de db.getCollectionNames() usando o shell mongo conectado à instância mongod ou mongos em execução na porta 27017 na interface localhost .

Você pode especificar um arquivo .js para a shell mongo e mongo executará o JavaScript diretamente. Considere o seguinte exemplo:

mongo localhost:27017/test myjsfile.js

Esta operação executa o script myjsfile.js em um shell mongo que se conecta ao banco de banco de dados test na instância mongod acessível por meio da interface localhost na porta 27017.

Como alternativa, você pode especificar os parâmetros de conexão do MongoDB dentro do arquivo JavaScript usando o construtor Mongo(). Consulte Abrir novas conexões para obter mais informações.

Você pode executar um arquivo .js de dentro mongosh, usando a função load() , como a seguir:

load("myjstest.js")

Esta função carrega e executa o arquivo myjstest.js .

O método load() aceita caminhos relativos e absolutos. Se a atual diretoria de trabalho de mongosh for /data/db e myjstest.js residir no diretório /data/db/scripts , as seguintes chamadas em mongosh serão equivalentes:

load("scripts/myjstest.js")
load("/data/db/scripts/myjstest.js")

Observação

Não há caminho de pesquisa para a função load() . Se o script desejado não estiver no diretório de trabalho atual ou no caminho especificado completo, mongosh não poderá acessar o arquivo.

Voltar

Acessar a ajuda do mongo Shell

Nesta página