Explore o novo chatbot do Developer Center! O MongoDB AI chatbot pode ser acessado na parte superior da sua navegação para responder a todas as suas perguntas sobre o MongoDB .

Learn why MongoDB was selected as a leader in the 2024 Gartner® Magic Quadrant™
Desenvolvedor do MongoDB
Central de desenvolvedor do MongoDBchevron-right
Produtoschevron-right
MongoDBchevron-right

Projetar, desenvolver e analisar com o novo MongoDB Shell

Nic Raboy4 min read • Published Dec 01, 2021 • Updated Feb 03, 2023
MongoDBShellBashJavaScript
Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Artigo
star-empty
star-empty
star-empty
star-empty
star-empty
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.

Destaque de sintaxe e preenchimento automático inteligente

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.
Realce da sintaxe do MongoDB Shell
Realce da sintaxe do MongoDB Shell
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.
Preenchimento automático com o MongoDB Shell
Preenchimento automático com o MongoDB Shell
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.

Mensagens de erro que realmente fazem sentido

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.
Relatório de erros do MongoDB Shell
Relatório de erros do MongoDB Shell
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."

Estender o MongoDB Shell com plug-ins conhecidos como trechos

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:
1snippet search
O comando acima pesquisa os trechos encontrados em um repositório no GitHub.
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:
1snippet 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:
1use food;
2schema(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.

Usando scripts Node.js no MongoDB Shell

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:
1use 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:
1async 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:
1getData("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:
1config.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.

Conclusã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.
Se você tiver dúvidas, visite os MongoDB Community!

Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Artigo
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Tutorial

Adição de notificações em tempo real ao Ghost CMS usando MongoDB e eventos enviados pelo servidor


Aug 14, 2023 | 7 min read
Tutorial

Como começar a usar o Neurelo e o MongoDB


Aug 30, 2024 | 7 min read
Artigo

O custo de não conhecer o MongoDB


Nov 11, 2024 | 23 min read
Tutorial

Como construir um aplicativo web Go com Gi, MongoDB e AI


Aug 30, 2024 | 11 min read
Sumário