Importante
Una descripción completa de Node.js, los módulos, y el require() función está fuera del alcance de este tutorial. Para obtener más información, consulta la Documentación de Node.js.
Para usar archivos y módulos en tu mongosh interacciones, utilice la función require().
En tus scripts de mongosh, puedes requerir:
Archivos locales
Módulos integrados de Node.js
External (npm) Node.js modules
Requiere un archivo local
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')
Requerir una funcionalidad incorporada
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.employeescon datos de muestra.Utiliza el módulo
fspara guardar 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, ejecuta el siguiente comando desdemongosh:load("employee-to-text-file.js") Para confirmar que los datos fueron escritos 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:
Globalmente
En el directorio
node_modulesen el directorio de trabajo actual.
Existen dos estándares de empaquetado para los módulos de Node.js.
Norma de envases | 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 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.cakeSalescon datos de muestra.Utiliza el módulo date-fns para dar formato a las 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, ejecuta el siguiente comando desdemongosh:load("date-fns-formatting.js") mongoshproduce 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.