Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Incluye archivos externos y módulos en los scripts

Importante

Una descripción completa de Node.js, módulos y la función require() está fuera del alcance de este tutorial. Para obtener más información, consulte la Documentación de Node.js.

Para utilizar archivos y módulos en tus interacciones de mongosh, utiliza la función require().

En tus scripts de mongosh, puedes requerir:

  • Archivos locales

  • Módulos integrados de Node.js

  • External (npm) Node.js modules

Puedes usar archivos JavaScript en scripts de mongosh sin ninguna configuración adicional.

Nota

mongosh no ejecuta archivos importados con require(). En cambio, mongosh añade todo desde un archivo importado al ámbito de ejecución actual.

Ejemplo

Para incluir un archivo llamado test.js que se encuentra en el directorio de trabajo actual, utiliza uno de los siguientes comandos:

require('./tests.js')
var tests = require('./tests.js')

Puedes requerir módulos de funcionalidad incorporada de Node.js (como fs) en mongosh sin ninguna configuración o configuración adicional.

Ejemplo

El siguiente ejemplo crea y ejecuta un script que:

  • Se conecta a una implementación local que se ejecuta en el puerto por defecto.

  • Llena la colección myDatabase.employees con datos de muestra.

  • Utiliza el módulo fs para guardar un documento de la colección myDatabase.employees en un archivo llamado employee.json.

  1. Crea un archivo llamado employee-to-text-file.js con el siguiente contenido:

    const fs = require('fs');
    db = connect('mongodb://localhost/myDatabase');
    db.employees.insertMany( [
    { "name": "Alice", "department": "engineering" },
    { "name": "Bob", "department": "sales" },
    { "name": "Carol", "department": "finance" }
    ] )
    const document = db.employees.findOne();
    fs.writeFileSync('employee.json', JSON.stringify(document));
  2. Para cargar y ejecutar el archivo employee-to-text-file.js, ejecuta el siguiente comando desde mongosh:

    load("employee-to-text-file.js")
  3. Para confirmar que los datos fueron escritos en el archivo, abra el archivo employee.json.

Se pueden requerir módulos de Node.js (como los descargados desde npm). Para utilizar módulos externos, se deben instalar los módulos de alguna de las siguientes maneras:

  • Globalmente

  • En el directorio node_modules en el directorio de trabajo actual.

Existen dos estándares de empaquetado para los módulos de Node.js.

Norma de envases
Funciona con require()

CommonJS (CJS)

ECMAScript Module (ES Module)

No

No puedes require() un módulo ES en mongosh. Si deseas utilizar la funcionalidad de un módulo ES, verifica si existe una versión en CommonJS que puedas usar en su lugar. Para obtener más información, consulta:

Tip

Puedes requerir módulos npm remotos usando esta construcción:

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

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

Ejemplo

Importante

Para ejecutar este ejemplo, debes instalar el módulo date-fns globalmente o en el directorio node_modules de tu directorio de trabajo actual.

El siguiente ejemplo crea y ejecuta un script que:

  • Se conecta a una implementación local que se ejecuta en el puerto por defecto.

  • Llena la colección myDatabase.cakeSales con datos de muestra.

  • Utiliza el módulo date-fns para dar formato a las fechas.

  1. Crea un archivo llamado date-fns-formatting.js con el siguiente contenido:

    const formatDistance = require('date-fns/formatDistance')
    db = connect('mongodb://localhost/myDatabase');
    db.cakeSales.insertMany( [
    { _id: 0, type: "chocolate", orderDate: new Date("2020-05-18T14:10:30Z"),
    state: "CA", price: 13, quantity: 120 },
    { _id: 1, type: "chocolate", orderDate: new Date("2021-03-20T11:30:05Z"),
    state: "WA", price: 14, quantity: 140 },
    { _id: 2, type: "vanilla", orderDate: new Date("2021-01-11T06:31:15Z"),
    state: "CA", price: 12, quantity: 145 },
    { _id: 3, type: "vanilla", orderDate: new Date("2020-02-08T13:13:23Z"),
    state: "WA", price: 13, quantity: 104 },
    { _id: 4, type: "strawberry", orderDate: new Date("2019-05-18T16:09:01Z"),
    state: "CA", price: 41, quantity: 162 },
    { _id: 5, type: "strawberry", orderDate: new Date("2019-01-08T06:12:03Z"),
    state: "WA", price: 43, quantity: 134 }
    ] )
    const saleDate0 = db.cakeSales.findOne( { _id: 0 } ).orderDate
    const saleDate1 = db.cakeSales.findOne( { _id: 1 } ).orderDate
    const saleDateDistance0 = formatDistance(saleDate0, new Date(), { addSuffix: true })
    const saleDateDistance1 = formatDistance(saleDate1, new Date(), { addSuffix: true })
    print("{ _id: 0 } orderDate was " + saleDateDistance0)
    print("{ _id: 1 } orderDate was " + saleDateDistance1)
  2. Para cargar y ejecutar el archivo date-fns-formatting.js, ejecuta el siguiente comando desde mongosh:

    load("date-fns-formatting.js")

    mongosh produce algo como lo siguiente:

    { _id: 0 } orderDate was over 1 year ago
    { _id: 1 } orderDate was 7 months ago

    Su resultado puede variar dependiendo de la fecha en que ejecute el ejemplo.