Docs Menu
Docs Home
/ /

Usar fragmentos en la consola

Advertencia

Esta función es experimental. MongoDB no admite fragmentos. Esta función puede modificarse o eliminarse en cualquier momento sin previo aviso.

No se esperan errores, sin embargo, si encuentra alguno, abra un problema en el Repositorio de GitHub para este proyecto.

Esta página es una descripción general sobre cómo trabajar con fragmentos en el mongosh consola.

Debe instalar un paquete de snippets antes de usarlo. Una vez instalado un paquete de snippets, se carga cada vez que mongosh inicia.

Si conoce el nombre del fragmento que desea instalar, ingrese:

snippet install <name>

De lo contrario, busca en el repositorio para obtener una lista de snippets disponibles.

snippet search

Una vez instalado el fragmento, ingrese y para cargarlo.

Running install...
Installed new snippets analyze-schema. Do you want to load them now? [Y/n]: y
Finished installing snippets: analyze-schema

Nota

Si es la primera vez que utiliza fragmentos, es posible que vea una advertencia como la siguiente:

This operation requires downloading a recent release of npm. Do
you want to proceed? [Y/n]:

Debes instalar npm para usar fragmentos.

Antes de ejecutar un nuevo fragmento, ejecute snippet help <SNIPPET NAME> para obtener más información sobre la funcionalidad del fragmento.

Por ejemplo, snippet help analyze-schema indica que puedes usar el analyze-schema pasándole un nombre de colección.

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

Una vez que sepa cómo llamar a un fragmento, puede usarlo como en el siguiente ejemplo.

Considere la colección 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 analizar la colección, instale el fragmento analyze-schema si aún no está presente y pase el nombre de la colección para ejecutarlo.

snippet install analyze-schema
schema(db.reservations)

El documento con "_id": 3 se introdujo incorrectamente como cadena. El análisis muestra que el campo reserved contiene elementos de cadena además de los 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' │
└─────────┴────────────┴───────────┴───────────┘

Utilice el comando snippet uninstall para eliminar un fragmento. Si no está seguro del nombre, el comando snippet ls lista todos los fragmentos instalados.

Este código desinstala el fragmento analyze-schema.

snippet uninstall analyze-schema

El comando snippet ls devuelve una lista de fragmentos instalados localmente junto con información sobre la versión y el origen.

snippets@ /root/.mongodb/mongosh/snippets
├── mongosh:PRIVATE..DecryptCards@1.0.5
├── mongosh:analyze-schema@1.0.5
└── npm@7.23.0

Para ver los fragmentos que están disponibles en el registro, primero refresh el caché de metadatos local y luego search.

snippet refresh
snippet search

snippet search enumera los fragmentos disponibles, su versión y ofrece una breve descripción.

Esta instancia tiene configurado un segundo registro privado. Dado que el registro privado se incluyó primero, estos fragmentos preceden a los de MongoDB en la lista de fragmentos disponibles.

┌─────────┬─────────────────────────────────┬─────────┬────────────────────────────────────────────────────────────────┐
│ (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)'
└─────────┴─────────────────────────────────┴─────────┴────────────────────────────────────────────────────────────────┘

Mostrar la página de inicio y la URL de cada repositorio de fragmentos:

snippet info

La salida enumera cada repositorio.

Snippet repository URL: https://compass.mongodb.com/mongosh/snippets-index.bson.br
--> Homepage: https://github.com/mongodb-labs/mongosh-snippets

Cada fragmento es único y tiene su propia interfaz. La mejor manera de encontrar información sobre el funcionamiento de un fragmento en particular es ver su archivo README ejecutando snippet help:

snippet help mongocompat

Este comando muestra el README archivo para el fragmento de mongocompat en la mongosh consola.

# 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 }
```

Cuando cree sus propios paquetes de fragmentos, asegúrese de incluir un README.md archivo que proporcione ayuda útil.

Volver

Snippets

En esta página