Menu Docs
Página inicial do Docs
/
MongoDB Shell
/

Usar snippets no console

Nesta página

  • Instalar pacotes de snippets
  • Executar um snippet
  • Desinstalar snippets
  • Encontre pacotes de snippets disponíveis
  • Obter informações do repositório
  • Obter ajuda para um snippet

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 .

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.

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' │
└─────────┴────────────┴───────────┴───────────┘

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

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)'
└─────────┴─────────────────────────────────┴─────────┴────────────────────────────────────────────────────────────────┘

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

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.

Voltar

Snippets