Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Crea y comparte fragmentos

Advertencia

Funcionalidad experimental

Esta funcionalidad es experimental. MongoDB no proporciona soporte para Fragmentos. Esta funcionalidad puede ser cambiada o eliminada en cualquier momento sin previo aviso.

No se esperan errores, sin embargo, si encuentras alguno, abre un caso en el Repositorio de GitHub para este proyecto.

Puede escribir scripts para manipular datos o realizar tareas administrativas en mongosh. Embalar un script como un snippet proporciona una manera sencilla de compartir scripts dentro de la organización o entre la Community de usuarios de MongoDB.

Esta página trata sobre:

  • Preparando un paquete de snippets.

  • Publicar el paquete de fragmentos en un registro.

Para ver ejemplos de scripts y archivos de metadatos en paquetes de fragmentos, consulte los fragmentos en el registro de fragmentos de la comunidad en GitHub.

Tip

Si planeas enviar tu fragmento al registro de la Community, asegúrate de revisar la información en Contribuir con un paquete de fragmentos a la Community de MongoDB.

Los pasos en esta sección se centran en empaquetar un script. Para obtener más detalles sobre cómo guardar scripts, consulte Guardar scripts.

1

Si planeas contribuir al repositorio de la comunidad, bifurca el repositorio del Proyecto de snippet.

No es necesario bifurcar el repositorio de la comunidad si desea crear un repositorio privado, pero debe recrear manualmente una estructura de directorio similar a medida que avanza en los siguientes pasos.

2

Crea un directorio para tu paquete de snippet bajo el directorio snippets en el repositorio bifurcado. Este directorio contendrá el código de tu script y varios archivos de metadatos.

Este ejemplo muestra directorios para dos paquetes de snippet, decrypt-cards y update-auth. El contenido de los Community snippets directorios se omite para mayor claridad.

mongo-snippets
|
├── scripts
│   ├── make-index.js
│   └── show-index.js
└── snippets
├── analyze-schema
├── decrypt-cards
│   ├── LICENSE-Community.txt
│   ├── README.md
│   ├── error-matchers.js
│   ├── index.js
│   └── package.json
├── mock-collection
├── mongocompat
├── resumetoken
├── spawn-mongod
└── update-auth
├── LICENSE
├── README.md
├── index.js
└── package.json
3

Cree un README.md. El README.md describe cómo usar tu código. Este archivo se muestra cuando un usuario añade snippet help para tu fragmento.

4

Crea un archivo LICENSE. Necesitarás ingresar un identificador de licencia más tarde, así que intenta elegir una licencia de la lista de licencias SPDX.

5

Crea un archivo index.js.

  • Este archivo contiene el punto de entrada a su código que se expone en la consola mongosh.

  • El script está escrito en JavaScript y define sus nuevas funciones.

  • El script puede estar en un solo archivo o en varios archivos.

  • El script puede llamar a otros archivos y módulos npm locales o remotos. Para require() un módulo npm remoto, use la construcción:

    const localRequire = require('module').createRequire(__filename);)

    Para un ejemplo, consulte index.js en el resumetoken snippet.

  • index.js está referenciado en package.json.

  • El repositorio MongoDB tiene código de ejemplo.

Tip

Si tienes un script existente, cámbiale el nombre a index.js o crea un archivo index.js para cargarlo. Para obtener un ejemplo de un archivo index.js que carga otros scripts, consulte este en el Community repositorio.

package.json Contiene metadatos que el registro del paquete utiliza para administrar fragmentos.

Un archivo package.json mínimo se ve así:

{
"name": "@mongosh/snippet-resumetoken",
"snippetName": "resumetoken",
"version": "1.0.2",
"description": "Resume token decoder script",
"main": "index.js",
"license": "Apache-2.0",
"publishConfig": {
"access": "public"
}
}

Los parámetros son:

Campo
Descripción

"Nombre"

El paquete npm que contiene el snippet.

"snippetName"

El nombre del snippet. Este es el nombre que se utiliza con comandos como install.

"versión"

La versión del paquete. Esto debe incrementarse cuando actualices tu snippet.

"descripción"

Una breve nota sobre lo que hace tu fragmento. Precaución, si la descripción es más larga de 50 o 60 caracteres, puede causar problemas de visualización con algunos comandos de fragmentos.

"principal"

Este es el punto de partida para tu código, index.js. Ten en cuenta que las funciones en otros archivos pueden tener un alcance que permita su disponibilidad también en el shell mongosh.

"licencia"

La licencia para los usuarios de tu código. Si quieres contribuir al registro compartido, la licencia debe estar en la lista de licencias de SPDX. Consulta también el Acuerdo de colaborador de MongoDB.

"publishConfig"

Este valor se utiliza para controlar el acceso a tu paquete de snippet. public es típico, pero npm también ofrece otras opciones.

Utiliza este código para crear un archivo package.json base. Edite el archivo y reemplace cada UPDATE para insertar los valores de su paquete de fragmentos.

{
"name": "@UPDATE/UPDATE",
"snippetName": "UPDATE",
"version": "UPDATE",
"description": "UPDATE",
"main": "UPDATE",
"license": "UPDATE",
"publishConfig": {
"access": "UPDATE"
}
}

Hay varios ejemplos de archivos package.json en el repositorio de MongoDB en GitHub .

Tip

MongoDB utiliza npm como registro de paquetes.

npm depende del archivo package.json para gestionar los paquetes. Consulta la documentación del paquete npm para obtener más información package.json sobre.

Para compartir su fragmento, debe publicar su paquete en un registro. El paquete contendrá:

Cuando los archivos estén completos, siga estos pasos para crear y publicar su paquete de fragmentos.

1

El archivo de índice del registro no es el mismo que el archivo index.js que contiene tu código de snippet. El archivo de índice del registro, index.bson.br, contiene metadatos de los paquetes de fragmentos en su registro.

El archivo índice del registro debe estar comprimido antes de cargarlo para su uso. La utilidad make-index.js en el directorio de scripts recorre los directorios fuente de snippets para recopilar la información necesaria para crear el archivo índice del registro. Después de crear el archivo índice del registro, make-index.js script también lo comprime.

Ejecuta make-index.js desde el directorio mongo-snippets para crear el índice.

node ./scripts/make-index.js

La salida de este script es un archivo de índice de registro comprimido con brotli, index.bson.br.

Puedes utilizar show-index.js para ver el archivo comprimido del índice del registro.

Usar make-index.js es la forma preferida de crear un índice de registro, pero también puede crear un índice manualmente.

2

Envíe su fragmento y el archivo de índice de registro a su repositorio de GitHub.

3

Publique sus cambios en su registro npm.

npm publish --access public

Siga estos pasos para instalar su nuevo paquete de fragmentos:

1

Actualice los metadatos del fragmento en su local.mongosh

snippet refresh
2

Instala el snippet.

snippet install YOUR_NEW_SNIPPET

Si ha escrito un snippet de código que podría ser útil para otros usuarios de MongoDB, está invitado a colaborar en el Community repositorio alojado en GitHub.

Para enviar un fragmento al repositorio compartido de MongoDB:

1

Lee y completa el Acuerdo de colaboración de MongoDB

2

Forkea y clona el repositorio del proyecto de snippet de GitHub.

3

Agrega un nuevo directorio para el código dentro de snippets/. Asígnele un nombre descriptivo.

4

Crea tu paquete de fragmentos. Asegúrate de que contenga los siguientes archivos:

  • package.json

  • index.js

  • README.md

  • LICENSE

No tienes que crear un archivo índice de registro. Si tu paquete de snippet es aceptado, MongoDB actualizará el archivo índice de registro.

5

Confirme sus cambios en su repositorio de GitHub.

6

Abrir una pull request contra el repositorio del proyecto de snippet.

MongoDB revisará su solicitud de extracción. Si se acepta, haremos lo siguiente:

  • Integra tu código en nuestro repositorio de GitHub.

  • Publíquelo en el registro npm.

  • Agreguelo al índice de fragmentos.

Volver

Uso en la Consola

En esta página