Projetar, desenvolver e analisar com o novo MongoDB Shell
Avalie esse Artigo
Existem muitos métodos disponíveis para interagir com o MongoDB e, dependendo do que você está tentando realizar, uma forma de trabalhar com o MongoDB pode ser melhor que a outra. Por exemplo, se você for um usuário avançado do Visual Studio Code, a extensãodo MongoDB para Visual Studio Code pode fazer sentido. Se você está trabalhando constantemente com infraestrutura e sistemas, talvez a MongoDB CLI faça mais sentido. Se você está trabalhando com dados, mas prefere uma experiência de linha de comando, o MongoDB Shell é algo em que você estará interessado.
O MongoDB Shell oferece uma rica experiência para trabalhar com seus dados por meio de realce de sintaxe, preenchimento automático inteligente, mensagens de erro claras e a capacidade de estevá-lo e personalizá-lo da maneira que você quiser.
Neste artigo, vamos analisar um pouco mais profundamente as coisas que podemos fazer com o MongoDB Shell.
Se você é como eu, olhar para uma parede de código ou texto de uma única cor pode ser entorpecente para você. Isso dificulta a identificação de coisas e cria uma tensão geral, o que pode prejudicar a produtividade. A maioria dos IDEs de desenvolvimento não tem esse problema porque tem destaque de sintaxe adequado, mas é comum que as ferramentas de linha de comando não tenham esse privilégio. No entanto, isso não é mais verdade quando se trata do MongoDB Shell porque é uma ferramenta de linha de comando que tem destaque de sintaxe.
Ao escrever comandos e visualizar os resultados, você verá cores que correspondem à configuração da sua linha de comando, bem como um pretty-print que é legível e fácil de processar.
A formatação e as cores são apenas parte da batalha que os defensores típicos da linha de comando encontram. O outro ponto problemático comum, que o MongoDB Shell corrige, é em torno do preenchimento automático. A maioria dos IDEs tem funcionalidade de preenchimento automático para evitar que você tenha que memorizar tudo, mas é menos comum em ferramentas de linha de comando.
Enquanto você estiver usando o MongoDB Shell, basta pressionar a tecla "Tab" no teclado para obter sugestões valiosas relacionadas ao que você está tentando realizar.
Realce de sintaxe, formatação e preenchimento automático são apenas algumas pequenas coisas que podem ajudar muito a tornar a experiência do desenvolvedor significativamente mais aceitável.
Quantas vezes você usou uma CLI, recebeu alguns erros que não entendeu e depois perdeu metade do dia procurando uma vírgula ausente ou parou de se irritar? Já aconteceu comigo muitas vezes por causa de relatórios de erros ruins em qualquer ferramenta que eu estivesse usando.
Com o MongoDB Shell, você obterá relatórios de erros significativamente melhores do que uma ferramenta típica de linha de comando.
No exemplo acima, Esqueci uma vírgula, algo que faço regularmente junto com dois pontos e ponto e vírgula, e ela me disse, além de fornecer uma área geral sobre onde a vírgula deve Go. Isso é muito melhor do que algo como "Erro genérico de tempo de execução 0x234223."
Se você usar o MongoDB Shell o suficiente, provavelmente chegará a um ponto no tempo em que desejará que ele faça algo específico para suas necessidades de forma repetitiva. Caso isso aconteça, você sempre pode estender a ferramenta com snippets, que são semelhantes a plugins.
Para ter uma ideia de alguns dos trechos oficiais do MongoDB Shell, execute o seguinte a partir do MongoDB Shell:
1 snippet search
Você sempre pode definir seu próprio repositório de snippets, mas se quiser usar um dos snippets disponíveis, mas opcionais, poderá executar algo assim:
1 snippet install analyze-schema
O trecho acima permite analisar qualquer collection que você especificar. Então, no exemplo da minha "collection" de " receita ", eu poderia fazer o seguinte:
1 use food; 2 schema(db.recipes);
Os resultados da análise do esquema, pelo menos para minha coleção, são os seguintes:
1 ┌─────────┬───────────────┬───────────┬────────────┐ 2 │ (index) │ 0 │ 1 │ 2 │ 3 ├─────────┼───────────────┼───────────┼────────────┤ 4 │ 0 │ '_id ' │ '100.0 %' │ 'ObjectID' │ 5 │ 1 │ 'ingredients' │ '100.0 %' │ 'Array' │ 6 │ 2 │ 'name ' │ '100.0 %' │ 'String' │ 7 └─────────┴───────────────┴───────────┴────────────┘
Os trechos não são a única maneira de estender a funcionalidade dentro do MongoDB Shell. Você também pode usar o Node.js em toda a sua honra diretamente no MongoDB Shell usando scripts personalizados.
Então, digamos que você tem uma necessidade de dados que não pode atender facilmente com a MongoDB Query API ou um pipeline de agregação. Se você puder realizar o que precisa usando o Node.js, poderá realizar o que precisa no MongoDB Shell.
Vamos dar uma olhada neste exemplo.
Digamos que você precise consumir alguns dados de um serviço remoto e armazená-los no MongoDB. Normalmente, você provavelmente escreveria um aplicativo, baixaria os dados, talvez os armazenaria em um arquivo e os carregaria no MongoDB ou os carregaria com um dos drivers de programação. Você pode pular algumas etapas e tornar sua vida um pouco mais fácil.
Tente isto.
Quando estiver conectado ao MongoDB Shell, execute os seguintes comandos:
1 use pokemon 2 .editor
O primeiro mudará para um banco de dados - neste caso, "pokemon" - e o segundo abrirá o editor. No editor, cole o seguinte código:
1 async function getData(url) { 2 const fetch = require("node-fetch"); 3 const results = await fetch(url) 4 .then(response => response.json()); 5 db.creatures.insertOne(results); 6 }
A função acima fará uso do pacotenode-fetch do npm. Em seguida, usando o pacote, podemos fazer uma solicitação para uma URL fornecida e armazenar os resultados em uma collection de "criaturas".
Você pode executar esta função simplesmente fazendo algo como o seguinte:
1 getData("https://pokeapi.co/api/v2/pokemon/pikachu");
Se foi executada com sucesso, sua collection deverá ter novos dados.
Em relação aos pacotes NPM, você pode instalá-los globalmente ou no seu diretório de trabalho atual. O MongoDB Shell os buscará quando você precisar deles.
Se você quiser usar seu próprio editor preferido, em vez do que o MongoDB Shell fornece, execute o seguinte comando antes de tentar abrir um editor:
1 config.set("editor", "vi");
O comando acima fará do VI o editor padrão a ser usado a partir do MongoDB Shell. Mais informações sobre como usar um editor externo podem ser encontradas na documentação.
Você pode fazer algumas coisas legais com o MongoDB Shell e, embora não seja para todos, se você for um usuário avançado da linha de comando, ela provavelmente melhorará sua produtividade com o MongoDB.