Página inicial do Docs → Visualizar & analisar dados → MongoDB Shell
Usar trechos no console
Nesta página
Aviso
Esse recurso é experimental. O MongoDB não é compatível com snippets. Este recurso pode ser alterado ou removido a qualquer momento sem aviso prévio.
Bugs não são esperados, no entanto, se você encontrar um, abra uma ocorrência no repositório do GitHub para este projeto.
Esta página é uma visão geral de trabalhar com trechos no console mongosh
.
Instalar pacotes de snippet
Você deve instalar um pacote de snippet antes de usá-lo. Depois que um pacote de snippet é instalado, ele é carregado toda vez que o mongosh
é iniciado.
Se você souber o nome do trecho que deseja instalar, digite:
snippet install <name>
Caso contrário, pesquise no repositório para obter uma lista dos trechos disponíveis.
snippet search
Após a instalação do trecho, insira y
para carregá-lo.
Running install... Installed new snippets analyze-schema. Do you want to load them now? [Y/n]: y Finished installing snippets: analyze-schema
Observação
Se esta for a primeira vez que você usa snippets, poderá ver um aviso como o seguinte:
This operation requires downloading a recent release of npm. Do you want to proceed? [Y/n]:
Você deve instalar o npm para usar snippets.
Executar um trecho
Antes de executar um novo snippet, execute snippet help <SNIPPET NAME>
para saber mais sobre a funcionalidade do snippet.
Por exemplo, snippet help analyze-schema
indica que você pode usar analyze-schema
passando a ele um nome de coleção.
testDB> snippet help analyze-schema # analyze-schema Analyze the schema of a collection or a cursor. ```js > schema(db.coll); ┌─────────┬───────┬───────────┬────────────┐ │ (index) │ 0 │ 1 │ 2 │ ├─────────┼───────┼───────────┼────────────┤ │ 0 │ '_id' │ '100.0 %' │ 'ObjectID' │ │ 1 │ 'a ' │ '50.0 %' │ 'Number' │ │ 2 │ 'a ' │ '50.0 %' │ 'String' │ └─────────┴───────┴───────────┴────────────┘
Depois de saber como chamar um snippet, você pode usá-lo como no exemplo a seguir.
Considere a collection reservations
:
db.reservations.insertMany( [ {"_id": 1001, "roomNum": 1, "reserved": true }, {"_id": 1002, "roomNum": 2, "reserved": true }, {"_id": 1003, "roomNum": 3, "reserved": "false" }, {"_id": 1004, "roomNum": 4, "reserved": true }, ] )
Para analisar a coleção, instale o trecho analyze-schema
se ele ainda não estiver presente, passe o nome da coleção para executá-la.
snippet install analyze-schema schema(db.reservations)
O documento com "_id": 3
foi inserido incorretamente como uma string. A análise mostra que o campo reserved
tem elementos de string além dos booleanos esperados.
┌─────────┬────────────┬───────────┬───────────┐ │ (index) │ 0 │ 1 │ 2 │ ├─────────┼────────────┼───────────┼───────────┤ │ 0 │ '_id ' │ '100.0 %' │ 'Number' │ │ 1 │ 'reserved' │ '75.0 %' │ 'Boolean' │ │ 2 │ 'reserved' │ '25.0 %' │ 'String' │ │ 3 │ 'roomNum ' │ '100.0 %' │ 'Number' │ └─────────┴────────────┴───────────┴───────────┘
Desinstalar trechos
Utilize o comando snippet uninstall
para remover um snippet. Se você não tiver certeza do nome, o comando snippet ls
listará todos os snippets instalados.
Este código desinstala o trecho analyze-schema
.
snippet uninstall analyze-schema
Encontre pacotes de trechos disponíveis
O comando snippet ls
retorna uma lista de snippets instalados localmente junto com algumas informações de versão e origem.
snippets@ /root/.mongodb/mongosh/snippets ├── mongosh:PRIVATE..DecryptCards@1.0.5 ├── mongosh:analyze-schema@1.0.5 └── npm@7.23.0
Para ver os trechos disponíveis no registro, primeiro refresh
o cache de metadados local e, em seguida, search
.
snippet refresh snippet search
snippet search
lista os snippets disponíveis, sua versão e fornece uma breve descrição.
Esta instância tem um segundo registro privado configurado. Como o registro privado foi listado primeiro, esses snippets precedem os snippets do MongoDB na lista de snippets disponíveis.
┌─────────┬─────────────────────────────────┬─────────┬────────────────────────────────────────────────────────────────┐ │ (index) │ name │ version │ description │ ├─────────┼─────────────────────────────────┼─────────┼────────────────────────────────────────────────────────────────┤ │ 0 │ 'PRIVATE..DecryptCards' │ '1.0.5' │ 'Decrypt credit card numbers' │ │ 1 │ 'PRIVATE..updateAuthentication' │ '1.0.2' │ 'Update user pwds and authentication' │ │ 2 │ 'resumetoken' │ '1.0.2' │ 'Resume token decoder script' │ │ 3 │ 'mongocompat' │ '1.0.7' │ 'mongo compatibility script for mongosh' │ │ 4 │ 'spawn-mongod' │ '1.0.1' │ 'Spin up a local mongod process' │ │ 5 │ 'mock-collection' │ '1.0.2' │ 'mockCollection([{ a: 1 }, { a: 2 }]).find({ a: { $gt: 2 } })' │ │ 6 │ 'analyze-schema' │ '1.0.5' │ 'schema(db.coll)' │ └─────────┴─────────────────────────────────┴─────────┴────────────────────────────────────────────────────────────────┘
Obter informações do repositório
Exibir a página inicial e o URL de cada repositório de trechos:
snippet info
A saída lista cada repositório.
Snippet repository URL: https://github.com/YOUR_COMPANY/YOUR_REPO_PATH/index.bson.br --> Homepage: https://davemungo.github.io/mongosh-snippets/ Snippet repository URL: https://compass.mongodb.com/mongosh/snippets-index.bson.br --> Homepage: https://github.com/mongodb-labs/mongosh-snippets
Obter ajuda para um snippet
Cada snippet é único e tem sua própria interface. A melhor maneira de encontrar informações sobre como um determinado trecho funciona é visualizar seu arquivo README
executando snippet help
:
snippet help mongocompat
Este comando exibe o README
arquivo para o mongocompat trecho no console mongosh
.
# mongocompat Provide `mongo` legacy shell compatibility APIs. ```js > Array.sum([1, 2, 3]) 6 > tojsononeline({a:1,b:2,c:3}) { "a" : 1, "b" : 2, "c" : 3 } ```
Ao criar seus próprios pacotes de snippets, inclua um arquivo README.md
que forneça ajuda útil.