Docs Menu
Docs Home
/ /

Crear y compartir fragmentos

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.

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.

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

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.

5

Crea un archivo index.js.

  • Este archivo contiene el punto de entrada a su código que está expuesto en la mongosh consola.

  • 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 resumetoken fragmento.

  • index.js está 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.

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 install.

"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,. index.js Tenga en cuenta que las funciones en otros archivos pueden tener un alcance definido para que también estén disponibles en el shell.mongosh

"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. public es típico, pero npm también proporciona otras opciones.

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.

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

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

Instalar el fragmento.

snippet install YOUR_NEW_SNIPPET

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:

1

Lea y complete el Acuerdo de colaborador de MongoDB.

2

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

3

Añade un nuevo directorio para tu código en snippets/. Asígnale 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 es necesario crear un archivo de índice de registro. Si se acepta el paquete de fragmentos, MongoDB actualizará el archivo de índice de registro.

5

Confirme sus cambios en su repositorio de GitHub.

6

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.

Volver

Uso en la consola

En esta página