Menu Docs
Página inicial do Docs
/
MongoDB Shell
/

Incluir arquivos e módulos externos em scripts

Nesta página

  • Exigir um arquivo local
  • Exigir um módulo integrado
  • Exigir um módulo npm

Importante

Uma descrição completa do Node.js, dos módulos e do require() A função está fora do escopo deste tutorial. Para saber mais, consulte a Documentação da Node.js.

Para utilizar arquivos e módulos em suas interações do mongosh, utilize a função require().

Em seus scripts do mongosh, você pode exigir:

  • Arquivos locais

  • Módulos Node.js integrados

  • External (npm) Node.js modules

Você pode utilizar arquivos JavaScript em scripts do mongosh sem qualquer configuração adicional.

Observação

mongosh não executa arquivos importados com require(). Em vez disso, o mongosh adiciona tudo de um arquivo importado ao escopo de execução atual.

Exemplo

Para incluir um arquivo denominado test.js localizado no diretório de trabalho atual, use um dos seguintes comandos:

require('./tests.js')
var tests = require('./tests.js')

Você pode exigir módulos Node.js integrados (como fs) no mongosh sem nenhuma configuração extra.

Exemplo

O exemplo seguinte cria e executa um script que:

  • Conecta a uma implantação local em execução na porta padrão.

  • Preenche a coleção myDatabase.employees com dados de amostra.

  • Utiliza o módulo fs para escrever um documento da coleção myDatabase.employees para um arquivo denominado employee.json.

  1. Crie um arquivo denominado employee-to-text-file.js com o seguinte conteúdo:

    const fs = require('fs');
    db = connect('mongodb://localhost/myDatabase');
    db.employees.insertMany( [
    { "name": "Alice", "department": "engineering" },
    { "name": "Bob", "department": "sales" },
    { "name": "Carol", "department": "finance" }
    ] )
    const document = db.employees.findOne();
    fs.writeFileSync('employee.json', JSON.stringify(document));
  2. Para carregar e executar o arquivo employee-to-text-file.js, execute o seguinte comando do mongosh:

    load("employee-to-text-file.js")
  3. Para confirmar que os dados foram gravados no arquivo, abra o arquivo employee.json.

Você pode exigir módulos .js nó (como os baixados do npm). Para usar módulos externos, você deve instalar os módulos:

  • Globalmente

  • No diretório node_modules em seu diretório de trabalho atual.

Existem dois padrões de embalagem para módulos Node.js.

Padrão de Embalagem
Funciona com require()
CommonJS (CJS)
Sim
ECMAScript Module (ES Module)
No

Não é possível require() um módulo ES em mongosh. Se você deseja usar a funcionalidade de um módulo ES, verifique se há uma versão CommonJS que você pode usar. Para mais informações, veja:

Dica

Você pode exigir módulos npm remotos usando esta construção:

const localRequire = require('module').createRequire(__filename);

Para ver um exemplo, consulte index.js no snippet resumetoken.

Exemplo

Importante

Para executar este exemplo, você deve instalar o módulo date-fns globalmente ou no diretório node_modules no diretório de trabalho atual.

O exemplo seguinte cria e executa um script que:

  • Conecta a uma implantação local em execução na porta padrão.

  • Preenche a coleção myDatabase.cakeSales com dados de amostra.

  • Utiliza o módulo date-fns para formatar datas.

  1. Crie um arquivo denominado date-fns-formatting.js com o seguinte conteúdo:

    const formatDistance = require('date-fns/formatDistance')
    db = connect('mongodb://localhost/myDatabase');
    db.cakeSales.insertMany( [
    { _id: 0, type: "chocolate", orderDate: new Date("2020-05-18T14:10:30Z"),
    state: "CA", price: 13, quantity: 120 },
    { _id: 1, type: "chocolate", orderDate: new Date("2021-03-20T11:30:05Z"),
    state: "WA", price: 14, quantity: 140 },
    { _id: 2, type: "vanilla", orderDate: new Date("2021-01-11T06:31:15Z"),
    state: "CA", price: 12, quantity: 145 },
    { _id: 3, type: "vanilla", orderDate: new Date("2020-02-08T13:13:23Z"),
    state: "WA", price: 13, quantity: 104 },
    { _id: 4, type: "strawberry", orderDate: new Date("2019-05-18T16:09:01Z"),
    state: "CA", price: 41, quantity: 162 },
    { _id: 5, type: "strawberry", orderDate: new Date("2019-01-08T06:12:03Z"),
    state: "WA", price: 43, quantity: 134 }
    ] )
    const saleDate0 = db.cakeSales.findOne( { _id: 0 } ).orderDate
    const saleDate1 = db.cakeSales.findOne( { _id: 1 } ).orderDate
    const saleDateDistance0 = formatDistance(saleDate0, new Date(), { addSuffix: true })
    const saleDateDistance1 = formatDistance(saleDate1, new Date(), { addSuffix: true })
    print("{ _id: 0 } orderDate was " + saleDateDistance0)
    print("{ _id: 1 } orderDate was " + saleDateDistance1)
  2. Para carregar e executar o arquivo date-fns-formatting.js, execute o seguinte comando do mongosh:

    load("date-fns-formatting.js")

    mongosh produz algo como o seguinte:

    { _id: 0 } orderDate was over 1 year ago
    { _id: 1 } orderDate was 7 months ago

    Sua saída pode variar dependendo da data em que você executar o exemplo.

Voltar

Escrever scripts