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
Requerir un archivo local
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')
Requiere un módulo integrado
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.employeescon datos de muestra.Utiliza el módulo
fspara escribir un documento de la colecciónmyDatabase.employeesen un archivo llamadoemployee.json.
Crea un archivo llamado
employee-to-text-file.jscon 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)); Para cargar y ejecutar el archivo
employee-to-text-file.js, ejecute el siguiente comando desdemongosh:load("employee-to-text-file.js") Para confirmar que los datos se escribieron en el archivo, abra el archivo
employee.json.
Requerir un módulo npm
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_modulesde su directorio de trabajo actual.
Hay dos estándares de empaquetado para los módulos Node.js.
Estándar de embalaje | Funciona con require() |
|---|---|
| Sí |
| 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.cakeSalescon datos de muestra.Utiliza el módulo date-fns para formatear fechas.
Crea un archivo llamado
date-fns-formatting.jscon 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) Para cargar y ejecutar el archivo
date-fns-formatting.js, ejecute el siguiente comando desdemongosh:load("date-fns-formatting.js") mongoshgenera 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.