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 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 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.