Docs Menu
Docs Home
/ /

Incluye archivos externos y módulos en los scripts

Importante

Una descripción completa de Node.js, módulos y requerir()Esta función queda 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 su mongosh interacciones, utilice la función require().

En sus scripts mongosh, puede requerir:

  • Archivos locales

  • Módulos integrados de Node.js

  • External (npm) Node.js modules

Puede utilizar archivos JavaScript en scripts 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')

Puede requerir módulos Node.js integrados (como fs) en mongosh sin ninguna configuración o instalació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 predeterminado.

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

  • Utiliza el módulo fs para escribir 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, ejecute el siguiente comando desde mongosh:

    load("employee-to-text-file.js")
  3. Para confirmar que los datos se escribieron 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:

  • A nivel mundial

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

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

Estándar de embalaje
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 ver un ejemplo, consulte index.js en el resumetoken fragmento.

Ejemplo

Importante

Para ejecutar este ejemplo, debe instalar el módulo date-fns de forma global o en el node_modules directorio de su 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 predeterminado.

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

  • Utiliza el módulo date-fns para formatear 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, ejecute el siguiente comando desde mongosh:

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

    mongosh genera algo como lo siguiente:

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

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

Volver

Escribir scripts

En esta página