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.
Crear un paquete de snippet
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.
Prepare los archivos
Haz un fork del repositorio de la comunidad.
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.
Crea un directorio de paquetes.
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
Crea LICENSE.
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.
Crea index.js.
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
resumetokensnippet.index.jsestá 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.
Prepara el archivo package.json
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 |
"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, |
"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. |
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.
Publicar un snippet
Para compartir su fragmento, debe publicar su paquete en un registro. El paquete contendrá:
Su código
README.mdLICENSEArchivo
Cuando los archivos estén completos, siga estos pasos para crear y publicar su paquete de fragmentos.
Crear un archivo de índice de registro.
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.
Instalar el nuevo paquete de fragmentos
Siga estos pasos para instalar su nuevo paquete de fragmentos:
Actualizar metadatos.
Actualice los metadatos del fragmento en su local.mongosh
snippet refresh
Contribuya con un paquete de snippets a la Community de MongoDB
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:
Completa el Acuerdo de Colaborador.
Lee y completa el Acuerdo de colaboración de MongoDB
Clonar el repositorio.
Forkea y clona el repositorio del proyecto de snippet de GitHub.
Crea tu directorio de paquetes.
Agrega un nuevo directorio para el código dentro de snippets/. Asígnele un nombre descriptivo.
Envía tu código Snippet.
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.