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 snippet en un registro.

Para obtener ejemplos de scripts y archivos de metadatos en los paquetes de snippets, consulta los snippets en el registro de snippets de la Community 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 Community si se quiere crear un repositorio privado, pero se debe recrear manualmente una estructura de directorios similar mientras se siguen 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

Cree 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 a módulos npm locales o remotos. Para require() un módulo npm remoto, utiliza la siguiente 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 de 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 de paquetes utiliza para gestionar fragmentos de código.

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.

"main"

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 tu snippet, debes publicar tu paquete de snippets en un registro. El paquete contendrá:

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

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

Confirme su snippet y el archivo de índice del registro en su repositorio de GitHub.

3

Publica tus cambios en tu registro de npm.

npm publish --access public

Sigue estos pasos para instalar tu nuevo paquete de snippets:

1

Actualiza los metadatos del snippet en tu mongosh local.

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

Cree su paquete de snippet. Asegúrate de que contiene 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

Confirma tus cambios en tu repositorio de GitHub.

6

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

MongoDB revisará su solicitud de extracción. Si es aceptado, nosotros:

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

  • Publícalo en el registro de npm.

  • Agregarlo al índice de fragmentos.

Volver

Uso en la Consola

En esta página