Menu Docs
Página inicial do Docs
/ /

Usar snippets no console

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 .

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.

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

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

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

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

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.

Voltar

Trechos de código

Nesta página