Advertencia
Funcionalidad experimental
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.
Puede escribir scripts para manipular datos o realizar tareas administrativas en mongoshEmpaquetar un script como un fragmento proporciona una manera de compartir scripts fácilmente dentro de su organización o en la comunidad de usuarios de MongoDB.
En esta página se tratan los siguientes temas:
Preparando un paquete de fragmentos.
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 planea enviar su fragmento al registro de la comunidad, asegúrese de revisar la información en Contribuir con un paquete de fragmentos a la comunidad MongoDB.
Crear un paquete de snippet
Los pasos de esta sección se centran en el empaquetado de un script. Para más detalles sobre la escritura de scripts, consulte Escribir scripts.
Preparar 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 fragmentos en el directorio snippets del repositorio bifurcado. Este directorio contendrá el código de tu script y varios archivos de metadatos.
Este ejemplo muestra los directorios de dos paquetes dedecrypt-cards fragmentos:update-auth y. El contenido de los directorios de fragmentos de la comunidad 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
Crear.LICENSE
Cree un LICENSE archivo. Deberá introducir una cadena de identificador de licencia más adelante, así que intente elegir una licencia de la lista de licencias de SPDX.
Crear.index.js
Crea un archivo index.js.
Este archivo contiene el punto de entrada a su código que está expuesto en la
mongoshconsola.El script está escrito en JavaScript y define sus nuevas funciones.
El script puede estar en un solo archivo o en varios.
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 ver un ejemplo, consulte index.js en el
resumetokenfragmento.index.jsestá referenciado en package.json.El repositorio MongoDB tiene código de ejemplo.
Tip
Si ya tienes un script, renómbralo index.js o crea un index.js archivo para cargarlo. Para ver un ejemplo de un index.js archivo que carga otros scripts, consulta este en el repositorio de la comunidad.
Preparar el package.json archivo
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 fragmento. |
"nombrefragmento" | El nombre del fragmento. Este es el nombre que se usa con comandos como |
"versión" | La versión del paquete. Esta debe incrementarse al actualizar el fragmento. |
"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 de su código,. |
"licencia" | La licencia para los usuarios de su código. Si desea contribuir al registro compartido, la licencia debe ser de la lista de licencias de SPDX. Consultetambién el Acuerdo de Colaboración de MongoDB. |
"publicarConfig" | Este valor se utiliza para controlar el acceso a su paquete de fragmentos. |
Usa este código para crear un archivo esqueleto package.json. Edítalo y reemplaza cada UPDATE para insertar los valores de tu paquete de fragmentos.
{ "name": "@UPDATE/UPDATE", "snippetName": "UPDATE", "version": "UPDATE", "description": "UPDATE", "main": "UPDATE", "license": "UPDATE", "publishConfig": { "access": "UPDATE" } }
Hay varios ejemplos de package.json archivos en el repositorio GitHub de MongoDB.
Tip
MongoDB utiliza npm como registro de paquetes.
npm utiliza el package.json archivo para gestionar los paquetes. Consulte la documentación del paquete npm para obtener más información package.json sobre.
Publicar un fragmento
Para compartir su fragmento, debe publicar su paquete en un registro. El paquete contendrá:
Tu 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 el fragmento de código. El archivo de índice del registro, index.bson.br, contiene metadatos de los paquetes de fragmentos del 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.
Ejecute make-index.js desde el mongo-snippets directorio para crear el índice.
node ./scripts/make-index.js
La salida de este script es un archivo de índice de registro comprimido con index.bson.br brotli,.
Puede utilizar show-index.js para ver el archivo de índice de registro comprimido.
El uso de make-index.js es la forma preferida de crear un índice de registro, pero también puede crear un índice de registro 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 fragmentos a la comunidad MongoDB
Si ha escrito un fragmento de código que pueda ser útil para otros usuarios de MongoDB, está invitado a contribuir con él al repositorio de la comunidad alojado en GitHub.
Para enviar un fragmento al repositorio compartido de MongoDB:
Complete el Acuerdo de Colaborador.
Lea y complete el Acuerdo de colaborador de MongoDB.
Clonar el repositorio.
Forkea y clona el repositorio del proyecto de snippet de GitHub.
Crea tu directorio de paquetes.
Añade un nuevo directorio para tu código en snippets/. Asígnale un nombre descriptivo.
Envíe su código de fragmento.
Abra una solicitud de extracción contra el repositorio del proyecto de fragmentos.
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.