Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

164
Vistas
inserte un código ejecutable en el archivo js usando otro código en el nodo 10

Estoy tratando de crear una secuencia de comandos de nodo, que toma un archivo xlsx y extrae los datos de él usando convert-excel-to-json y luego crea una secuencia de comandos de migración-mongo , que insertará los datos en la colección de mongo.

Pude hacer el script del nodo, pero hay un campo de fecha en mi colección. en la hoja xlsx los datos están en formato dd/mm/yyyy. extraje las fechas y en el script de nodo traté de mapearlo como

 "startDate": new Date("yyyy-mm-ddTHH:MM:ssZ");

y luego lo insertó en el archivo para crear el conjunto de datos del script mongo usando

 fs.writeFileSync("dataToInsert.js", JSON.stringify(newData, null, 2), 'utf-8');

pero el archivo de migración que se creó tenía la fecha como resultado de la ejecución. es decir

 "startDate": "yyyy-mm-ddTHH:MM:ssZ"

qué se debe hacer para obtener los datos en el script mongo-migrate como nueva fecha ("yyyy-mm-ddTHH: MM: ssZ"); para que esto se ejecute al insertar datos en mongoDb y cree un campo de fecha adecuado y no un campo de cadena.

EDITAR: como se menciona en los comentarios, lo intenté

 "startDate" : {"$date": "yyyy-mm-ddTHH:MM:ssZ"}

pero esto funciona en la versión de nodo más reciente (probado en el nodo 14). pero estos datos de fecha no se insertan ni se leen cuando se usa el nodo v10.16.3.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Creo que la única forma de lograr lo que está tratando de hacer es mediante el uso de mongo-extended-json https://docs.mongodb.com/manual/reference/mongodb-extended-json/ que usa el formato

 "startDate" : {"$date": "yyyy-mm-ddTHH:MM:ssZ"}

Parece que el problema radica en el análisis de los datos mediante JSON.stringify . Sugeriría usar EJSON del paquete BSON para analizar los datos.

en vez de

 fs.writeFileSync("dataToInsert.js", JSON.stringify(newData, null, 2), 'utf-8');

probar

 const { EJSON } = require('bson'); fs.writeFileSync("dataToInsert.js", EJSON.parse(newData)); //utf-8 is default option here
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda