Aviso
Esse recurso é experimental. O MongoDB não é compatível com trechos de código. 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 repositório do GitHub para este projeto.
Esta página é uma visão geral de como trabalhar com snippets 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 trechos de código, 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 trecho de código, execute snippet help <SNIPPET NAME> para saber mais sobre a funcionalidade do trecho de código.
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 trecho de código, 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 trecho de código. Se você não tiver certeza do nome, o comando snippet ls listará todos os trechos de código 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 trechos de código 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 trechos de código 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 trechos de código precedem os do MongoDB na lista de 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://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 trecho de código 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.