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 sus scripts mongosh, puede 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
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.
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 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.
Existen dos estándares de empaquetado para los módulos de 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 un ejemplo, consulte index.js en el resumetoken snippet.
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.
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") 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.