Usar snippets 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 um problema no Github repositório do para este projeto.
Esta página fornece uma visão geral do trabalho com trechos no console mongosh
.
Instalar pacotes de snippets
Você deve instalar um pacote de snippet antes de usá-lo. Depois que um pacote de snippet é instalado, ele é carregado sempre que o mongosh
é iniciado.
Se você souber o nome do snippet que deseja instalar, digite:
snippet install <name>
Caso contrário, pesquise no repositório para obter uma lista de snippets disponíveis.
snippet search
Após o snippet ser instalado, 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]:
É necessário instalar o npm para usar os snippets.
Executar um snippet
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 snippet analyze-schema
. Se ele ainda não estiver presente, transmita 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 snippets
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 snippet analyze-schema
.
snippet uninstall analyze-schema
Encontre pacotes de snippets 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 snippets 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
Exiba a página inicial e o URL de cada repositório de trecho:
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 snippet funciona é visualizar seu arquivo README
executando snippet help
:
snippet help mongocompat
Este comando exibe o arquivo README
do snippet mongocompat 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 snippet, inclua um arquivo README.md
que fornece ajuda.